0

我跑這個sample script與IE:爲什麼IE不會將<option>添加到我的dropDown中?

var $select = $('#select'); 
var $button = $('#button'); 

$button.click(function() { 
    var $option = $('<option />'); 
    $option.text('hello'); 
    $option.appendTo($select); 
}); 

var $tabs = $('#tabs'); 
$tabs.tabs(); 

這是非常簡單的:在按鈕上點擊時,一個option應該被添加到我的下拉。這很好用 - IE中的基本功能。

我的問題:
只是「打開」dropDown,並「再次」關閉它。現在切換到標籤「按鈕」並按下按鈕。現在切換到選項卡「選擇」 - 應該有一個新的option
這只是對IE瀏覽器的每一個偉大的工程......(有時IE之後的幾個選項卡,交換機弄糟)

如何解決我的腳本?

+0

你是說它根本不起作用,或者它在幾個標籤開關後不工作? – GolezTrol

+0

有時根本無法工作,有時會在某些開關後...請嘗試一下我的完整工作示例,以瞭解您的IE的行爲:) –

+0

您可以在jsfiddle上嘗試自己的:)但我會嘗試在一秒鐘內 –

回答

3

還有一個更簡單,更跨瀏覽器友好的方式添加選項來選擇比增加option DOM元素(live example)箱:

$button.click(function() { 
    var option = new Option('hello'); 
    $select[0].options.add(option); 
}); 

也許會工作更可靠地爲您服務。 (請注意,這是addpushselect元素的options對象是不是一個真正的數組。)

而不是options.add你也可以這樣做:

$button.click(function() { 
    var options = $select[0].options, 
     option = new Option('hello'); 
    options[options.length] = option; 
}); 

...這也增加以陣列式的方式結束。但是add是可靠的跨瀏覽器。

+0

只是爲了給你一個更準確的方向:在同一個div上工作時不會發生問題。它以某種方式連接到隱藏div中的'select',並且之前是「打開」和「關閉」的。如果我只是離開選擇不變,並切換選項卡,並添加一個「選項」,它只是完美的作品! –

+0

@AndreasNiedermair:但上述工作可靠嗎? –

+0

是的,直到現在:) ...非常感謝! (我的cmt背後的真正想法不是一個錯誤的答案,而是一個更準確的解決我的問題 - 這是一個jQuery的問題?我做錯了什麼?它是?...除了你的神奇的整體解決方案,它會是很高興在這裏得到真正的問題) –

相關問題