jquery - .on检测新添加的元素

时间:2014-01-21 09:22:55

标签: jquery

我需要我的jquery .on来检测.get。

中新添加的元素

简单场景

$('.click').on('click',function(){
    alert('clicked');
});

<body>
    <div class='content'>
        <div class='click'>click here</div>
    </div>
</body>

它适用于上述,但当我添加一个新的

<div class='click'>click here</div>

通过

$.get('url',function(data){
    $('.content').append(data);
});

第二次点击不会被jquery检测到,只有第一次点击才有效。 当我尝试改为.live时,它完全不起作用。

任何替代方法使这个工作? 谢谢。

4 个答案:

答案 0 :(得分:3)

.live()在1.9中删除,并在1.7中弃用.on()代替,并委托给最近的静态父元素或文档

$(document).on('click','.click',function(){

答案 1 :(得分:2)

您应该使用:

$(document).on(click, '.click', function(){
   alert('clicked');
} );

答案 2 :(得分:1)

您应该将.on()绑定到文档,如下所示:

$(document).on('click', '.classname', function() {
    // do something neat
});

这样,只要将一个新元素添加到DOM,并使用“classname”类,它就会自动接收该事件监听器。

答案 3 :(得分:-1)

您为两个错误提供相同的类名称,在这种情况下只需单击一次即可。所以只需在第二个div中提供不同的类名,然后再用该类名绑定一个click事件,那么它就可以了。 像这样添加。

$('.click2').on('click',function(){
    alert('clicked');
});

和HTML将

<div class='click2'>click here</div>