클릭 이벤트에 대해 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="http://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;