JQuery:将事件绑定到动态创建的元素?

JQuery:将事件绑定到动态创建的元素?,jquery,Jquery,这是一个愚蠢的小页面,每次点击一个DIV,它都会生成一个它的副本,并放在它的后面 这似乎很好,但只适用于硬编码的div。克隆并单击DIV时,不会发生任何事情,因为事件尚未绑定到它 正确的方法是什么?有一个专门的jQuery函数,即.live() 有一个专门的jQuery函数,即.live() 使用 该函数曾用于此目的,但在jQuery 1.7中已被弃用。请使用 该函数曾用于此目的,但在jQuery 1.7中被弃用。除了它被弃用之外,我还应该在()而不是live()上使用它吗?@user10918

这是一个愚蠢的小页面,每次点击一个DIV,它都会生成一个它的副本,并放在它的后面

这似乎很好,但只适用于硬编码的div。克隆并单击DIV时,不会发生任何事情,因为事件尚未绑定到它


正确的方法是什么?

有一个专门的jQuery函数,即
.live()


有一个专门的jQuery函数,即
.live()

使用

该函数曾用于此目的,但在jQuery 1.7中已被弃用。

请使用


该函数曾用于此目的,但在jQuery 1.7中被弃用。

除了它被弃用之外,我还应该在()而不是live()上使用它吗?@user1091856是否还有其他原因<代码>开启,其“延迟事件”功能与现场相同。这是一个统一的API。为什么我必须选择“body”元素,然后在第二个参数中指定“div”?我不能只使用$(“div”)。在(“单击”,函数)?@user1091856而不是body上,您可以使用div所在位置的任何父级。上的
的优点是,它可以查看页面的特定部分,而不是不断分析整个页面的事件。除了它被弃用之外,我应该在()上使用而不是在live()上使用的任何原因?@user1091856必须有其他原因吗<代码>开启
,其“延迟事件”功能与现场相同。这是一个统一的API。为什么我必须选择“body”元素,然后在第二个参数中指定“div”?我不能只使用$(“div”)。在(“单击”,函数)?@user1091856而不是body上,您可以使用div所在位置的任何父级。上的
的优点是它可以查看页面的特定部分,而不是不断分析整个页面中的事件。
$(function(){

    $("div").click(function(){
        $(this).clone().insertAfter( $(this) ); 
    });

});
$(function(){

    $("div").live("click",function(){
        $(this).clone().insertAfter( $(this) ); 
    });

});
$("body").on("click", "div", function() {
  //...
});