jquery将click事件添加到动态创建的元素中

cdu*_*gan 3 jquery live internet-explorer-8

我需要在我加载DOM后动态创建的列表项中添加一个click事件.

我正在使用 ;

$("#ListDiv li").live("click",function(event){
  do something......
 });
Run Code Online (Sandbox Code Playgroud)

但是当元素加载到页面上并且我点击它时我什么都没得到.

这适用于Firefox,但不适用于IE8.我也试过jquery livequery和deleagte,但都没有用.我尝试使用IE8开发人员工具进行调试,但是从未达到该方法

kar*_*m79 10

使用.delegate.live确保在DOM准备好后绑定:

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

编辑:

上述解决方案虽然仍然完全有效,但现在已经遗留/弃用.jQuery之后推出了.on() method:

从jQuery 1.7开始,.on()方法提供了附加事件处理程序所需的所有功能.

实现与.delegate上面发布的解决方案非常相似,但请注意参数的顺序已更改:

$(document).ready(function () {
    $("#ListDiv").on("click", "li", function (event) {
        // do something
    });
});
Run Code Online (Sandbox Code Playgroud)