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

时间:2012-08-18 02:03:31

标签: jquery

$(function(){

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

});

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

这似乎工作正常,但仅适用于已经硬编码的DIV。当克隆并点击DIV时,没有任何反应,因为该事件尚未绑定到它。

使这项工作的正确方法是什么?

2 个答案:

答案 0 :(得分:4)

使用jQuery .on() function

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

.live()函数曾用于此目的,但在jQuery 1.7中已弃用。

答案 1 :(得分:1)

有一个特殊的jQuery函数,.live()

$(function(){

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

});