我需要添加一個點擊事件到我加載DOM後動態創建的列表項。jquery將點擊事件添加到動態創建的元素
我正在使用;
$("#ListDiv li").live("click",function(event){
do something......
});
但是,當元素加載在頁面上,我點擊它,我什麼都沒有。
這適用於Firefox而不適用於IE8。我也試過jquery livequery和deleagte,但都沒有工作。我試着調試與IE8的開發工具,但該方法從未達到
我需要添加一個點擊事件到我加載DOM後動態創建的列表項。jquery將點擊事件添加到動態創建的元素
我正在使用;
$("#ListDiv li").live("click",function(event){
do something......
});
但是,當元素加載在頁面上,我點擊它,我什麼都沒有。
這適用於Firefox而不適用於IE8。我也試過jquery livequery和deleagte,但都沒有工作。我試着調試與IE8的開發工具,但該方法從未達到
使用.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
});
});
推動內部的document.ready
$(document).ready(function() {
$("#ListDiv li").live("click",function(event){
do something......
});
});
這些代碼現在都[不贊成](http://api.jquery.com/on/) – cliveholloway 2012-06-21 02:53:11
@cliveholloway - 謝謝你指出。我剛剛更新了答案:)再次感謝! – karim79 2012-06-21 12:55:39