在jquery中通过委托在选定的div上应用click函数

时间:2013-12-10 14:20:52

标签: javascript jquery

添加Not of jquery的最佳方法是什么?

<div class="line-item">
<div class="thumb">
    Image goes here
</div>
<div class="title">
    Title goes here
</div>
<div class="destroy">
    Destroy Button goes here
</div>

这是Java脚本

$('div.line-item').delegate('div:not(".destroy")', 'click', function() {
alert('hi');
})

我想要的是在具有.destroy类

的div上应用“click”

这是工作演示: http://jsfiddle.net/trVKF/110/

5 个答案:

答案 0 :(得分:2)

使用较新版本的jQuery并执行:

$('div.line-item').on('click', '.destroy', function() {
//    ^^ static parent | ^^ event | ^^ dynamic element bound to handler
    alert('hi');
});

答案 1 :(得分:1)

您可以使用:

$('div.line-item').delegate('.destroy', 'click', function() {
    alert('hi');
})

,如 Demo

答案 2 :(得分:1)

会实现你所需要的吗?

$('div.line-item').delegate('div:not(".destroy")', 'click', function() {
    alert('hi');
}).delegate(".destroy", 'click', function(){
    alert('bye');
})

http://jsfiddle.net/trVKF/112/

或者:

$('div.line-item').delegate('div', 'click', function(e) {
    if($(e.target).is(".destroy")){
        alert("bye");
    }else{
        alert("hi");
    }
});

http://jsfiddle.net/trVKF/113/

答案 3 :(得分:1)

$('div.line-item').on('click', '.destroy', function() {
    alert('hi');
});

如果您使用的是较新版本的jQuery。

答案 4 :(得分:1)

尝试使用此方法绑定click事件而不使用委托。

 $('.line-item > .destroy').click(function(){
        //your code goes here
 });

<强> DEMO