2011-06-01 134 views
3

我需要添加一個點擊事件到我加載DOM後動態創建的列表項。jquery將點擊事件添加到動態創建的元素

我正在使用;

$("#ListDiv li").live("click",function(event){ 
    do something...... 
}); 

但是,當元素加載在頁面上,我點擊它,我什麼都沒有。

這適用於Firefox而不適用於IE8。我也試過jquery livequery和deleagte,但都沒有工作。我試着調試與IE8的開發工具,但該方法從未達到

回答

10

使用.delegate.live,並確保你綁定一旦DOM is ready

$(document).ready(function() { 
    $("#ListDiv").delegate("li", "click", function (event) { 
     // do something 
    }); 
}); 

編輯:

上述解決方案,同時還完美有效,現在是遺留/棄用。 jQuery的自引入.on() method

在jQuery 1.7中,。對()方法提供用於附接的事件處理程序所需 所有功能。

實現相當類似.delegate解決方案張貼以上,但是要注意參數的順序發生了變化:

$(document).ready(function() { 
    $("#ListDiv").on("click", "li", function (event) { 
     // do something 
    }); 
}); 
+1

這些代碼現在都[不贊成](http://api.jquery.com/on/) – cliveholloway 2012-06-21 02:53:11

+0

@cliveholloway - 謝謝你指出。我剛剛更新了答案:)再次感謝! – karim79 2012-06-21 12:55:39

2

推動內部的document.ready

$(document).ready(function() { 
     $("#ListDiv li").live("click",function(event){ 
     do something...... 
     }); 
    }); 
相關問題