2013-11-28 196 views
-1

我正在使用引導程序下拉列表,我向其中動態添加新項目。但是,on()事件不會被動態添加項目觸發。爲什麼?jQuery .on()not firing

$('div.my-modal .some-class label.link').off(); 
$('div.my-modal .some-class label.link').on('click',function() { 
    console.log('a'); 
}); 

... 
$('div.my-modal .some-class').append("<li><label class='link'>test</label></li>"); 
+1

儘可能'。對() '知道所有的元素已經被創建。只有在事件處理程序需要啓動或頁面重新加載之前,'.on()'纔會被觸發 - 除非您將其綁定到像文檔一樣更改的東西(如alessandro minoccheri所說) – Deryck

回答

3

你可以使用方法.on()與文檔事件,而不是直接綁定到類,因爲實例不存在
試試這個:

$(document).on('click','div.my-modal .some-class label.link', function() { 
    console.log('a'); 
}); 
+0

是的,它可以工作。告訴我,在這種情況下,我必須在.on()方法之前使用.off()嗎?包含該代碼的頁面可以被加載多次,並且我想要防止事件冒泡 – Tony

+1

.off()需要在需要時使用.on()不會觸發例如禁用按鈕事件。在這種情況下,我認爲這不是必要的,就像舊的unbind()事件@Tony –