【发布时间】:2010-11-12 22:44:54
【问题描述】:
我有一个复选框,我想对单击事件执行一些 Ajax 操作,但是该复选框也在一个具有自己的单击行为的容器内,我不想在单击该复选框时运行它。这个示例说明了我想要做什么:
$(document).ready(function() {
$('#container').addClass('hidden');
$('#header').click(function() {
if ($('#container').hasClass('hidden')) {
$('#container').removeClass('hidden');
} else {
$('#container').addClass('hidden');
}
});
$('#header input[type=checkbox]').click(function(event) {
// Do something
});
});
#container.hidden #body {
display: none;
}
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<div id="container">
<div id="header">
<h1>Title</h1>
<input type="checkbox" name="test" />
</div>
<div id="body">
<p>Some content</p>
</div>
</div>
但是,我不知道如何在不导致默认点击行为(复选框变为选中/未选中)不运行的情况下停止事件冒泡。
以下两项均会停止事件冒泡,但也不会更改复选框状态:
event.preventDefault();
return false;
【问题讨论】:
-
我发现了一篇关于这个问题的文章,可能对其他 Stack Overflowers 有帮助。 Quick Tip: Click Table Row to Trigger a Checkbox Click
标签: javascript jquery checkbox events