2012-12-21 69 views
1

我有一系列HREFs,其中。我點擊如下覆蓋這些:jQuery:動態追加元素+ .on()

$('.buy').on('click', function (e) { 
    e.preventDefault(); 
    var me = $(this); 
    // other stuff here... 

這可以正常工作。當我將更多這些鏈接動態地附加到DOM時就會出現問題。點擊這些鏈接時,它們不會被捕獲。我認爲使用.on()方法的綁定可以處理JS加載時DOM中不存在的項目。

不知道爲什麼,我似乎無法弄清楚。按照預期,使用標準點擊捕獲。在不起作用。

回答

3
$(document).on('click', '.buy', function(e){ 
    e.preventDefault(); 
    var me = $(this); 
    // other stuff here... 
}); 

事件需要委託給一個靜態元素,第二個參數是您希望函數運行的選擇器。

雖然仍然保持不變,但您的方式並未將其附加到綁定到頁面加載的靜態元素上。

1

可以使用.target功能太:

$(document).on('click', '.buy', function(e){ 
    e.preventDefault(); 
    var me = $(e.target); 
    alert(me.attr('id')); 
}); 

這一個未經測試,但可能工作:

$('.buy').on('click',function(e){  
    e.preventDefault(); 
    var me = $(e.target); 
    alert(me.attr('id')); 
});