Saya memiliki kotak centang yang ingin saya lakukan beberapa tindakan Ajax pada acara klik, namun kotak centang juga di dalam wadah dengan perilaku klik sendiri yang tidak ingin saya jalankan ketika kotak centang diklik. Sampel ini menggambarkan apa yang ingin saya lakukan:
$(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>
Namun, saya tidak dapat menemukan cara untuk menghentikan gelembung acara tanpa menyebabkan perilaku klik default (kotak centang menjadi dicentang / tidak dicentang) untuk tidak berjalan.
Kedua hal berikut ini menghentikan acara yang menggelegak tetapi juga tidak mengubah status kotak centang:
event.preventDefault();
return false;