Ich habe ein Kontrollkästchen, mit dem ich eine Ajax-Aktion für das Klickereignis ausführen möchte. Das Kontrollkästchen befindet sich jedoch auch in einem Container mit einem eigenen Klickverhalten, das ich nicht ausführen möchte, wenn auf das Kontrollkästchen geklickt wird. Dieses Beispiel zeigt, was ich tun möchte:
$(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>
Ich kann jedoch nicht herausfinden, wie das Sprudeln des Ereignisses gestoppt werden kann, ohne dass das Standardklickverhalten (Kontrollkästchen wird aktiviert / deaktiviert) nicht ausgeführt wird.
Beide der folgenden Aktionen stoppen das Sprudeln des Ereignisses, ändern jedoch auch nicht den Status des Kontrollkästchens:
event.preventDefault();
return false;