jQuery - 在div上单击事件而不是在div中的复选框

时间:2010-01-11 18:00:42

标签: jquery checkbox click

我正在尝试在div上设置click事件,如果除了div中的复选框之外的任何地方点击了div,我希望触发该事件。如果单击该复选框,我不希望触发div的单击事件。我在复选框上设置了一个click事件并返回false,这会停止div的click事件,但也不允许复选框被选中。这就是我现在所拥有的:

$('.theDiv').click(function() {
    // Click event for the div, I'm slide toggling something
    $('.sub-div', $(this)).slideToggle();
});

$('.checkboxInTheDiv').click(function() {
    // Do stuff for the checkbox click, but dont fire event above
    return false; // returning false won't check/uncheck the box when clicked
})

3 个答案:

答案 0 :(得分:15)

而不是返回false,这会阻止默认操作,请尝试停止传播。

$('.checkboxInTheDiv').click( function(e) {
    e.stopPropagation();
    ... other stuff...
    return true;
});

答案 1 :(得分:3)

您需要查看传递给点击处理程序的event对象并查看它的类型。有关详细信息,请查看Event.Type文档。

function handler(event) {
  var $target = $(event.target);
  if( $target.is("li") ) {
    $target.children().toggle();
  }
}

$("ul").click(handler).find("li > ").h

注意:从链接的网址中复制代码。

答案 2 :(得分:0)

尝试一个简单的return;