jquery delegate单击一个类,但仅限于未单击特定子项

时间:2011-02-21 20:26:28

标签: jquery css delegates

我有jquery

这个委托
$('body').delegate('.line-item','mouseup',function(){
        // more code gets run 
})

这个类的dom样本

<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>
</div>

想要:当用户点击此div.line-item内不是destroy class div的任何地方时,会运行一些代码来显示此订单项,但如果他们点击了该div.destroy,那么该订单项就不会得到显示但被摧毁。所以我不知道CSS选择器应该是什么样的,我知道有一个:不是选择器,虽然我没有用它做一个选择器就可以了,

有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

只做

$('div.line-item').delegate('div:not(".destroy")', 'mouseup', function() {
    ....
})

检查http://jsfiddle.net/trVKF/2/

处的工作示例

答案 1 :(得分:0)

以下是我要使用的内容:

// to select the thumb and title
$("div.line-item div:not(.destroy)").click(function(){code...});

// to select destroy
$("div.line-item div.destroy").click(function(){});

关于“不是”选择器的文档:http://api.jquery.com/not-selector/

希望有所帮助。

答案 2 :(得分:0)

您只需要将其添加到您已有的内容中。

$('body').delegate('.destroy','mouseup',function(e){
    $(this).hide();  // or whatever 
    e.stopPropagation();
});