我正在尝试在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
})
答案 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;