2010-11-08 99 views
0

hey all, Im難住。 我在所有的瀏覽器以下罰款code..works除了IE(令人震驚......我知道)jQuery .live()和IE

$('#lbAvailableResources option').live('click', function() { 
    if($('#ulResourcesAssigned').text() === 'No resources assigned') 
     $('#ulResourcesAssigned').text(''); 

    //create a new listitem that will be added to the list of assigned resources 
    $('<li>').val($(this).val()).text($(this).text()).appendTo('#ulResourcesAssigned'); }); 

列表框(#lbAvailableResources)通過Ajax調用加載頁面時加載。

香港專業教育學院也嘗試了以下內容:1。 我想委託()方法...沒有骰子 2.我試過的liveQuery ...沒有骰子

任何幫助,將不勝感激。

+0

只是一個側面說明... .val()真的適用於表單元素之外嗎?例如我只用過'input','select','textarea'和'button' - 我不認爲我曾經見過它用在'LI'上。 – scunliffe 2010-11-08 20:56:33

回答

2

有在IE中option元件沒有事件。

select元素可能會作爲一個OS小部件實現,在這種情況下,您可能會忘記在控件的子部件上獲取任何細粒度的鼠標事件。

change事件select是唯一的跨瀏覽器兼容的方式被告知的選項更改。請注意,鍵盤導航也可能觸發此事件。

如果你想要的是一個控件,彈出一個選項列表,並允許你點擊任何選項時添加內容到另一個元素,select元素是不合適的。試試彈出式的div包含按鈕。

+0

Bobince ....你是對的錢。我修改了代碼綁定,如下所示:$('#lbAvailableResources')。bind('change',function(){}),它就像一個魅力。謝謝您的幫助。你從哪裏學到的?你能把我指向一個網站嗎?或者你是通過苦難來了解它的嗎? – Alex 2010-11-10 02:38:23

+1

從歷史上看,將'

0

另外,請檢查您的代碼,看看您是否有任何使用console.log()的地方,或者使用「,」結束一組值。這些是另外兩個例子,IE瀏覽器在其他一些瀏覽器中不起作用。

 

$('#lbAvailableResources option').die(); 

$('#lbAvailableResources option').live('click', function(event) { 

    if ($('#ulResourcesAssigned').text() == 'No resources assigned') { //is absolute equality needed here? 
    $('#ulResourcesAssigned').text(''); 
    } //i always use brackets, it makes for more readable code 

    //create a new list item that will be added to the list of assigned resources 
    $("li").val($(this).val()).text($(this).text()).appendTo('#ulResourcesAssigned'); //the "" are not needed 
}); 
 

給上面的一個嘗試,我不知道它是否工作