Tengo una casilla de verificación que quiero realizar alguna acción de Ajax en el evento de clic, sin embargo, la casilla de verificación también está dentro de un contenedor con su propio comportamiento de clic que no quiero ejecutar cuando se hace clic en la casilla de verificación. Esta muestra ilustra lo que quiero hacer:
<html lang=en>
<head>
<title>Test</title>
<script type=text/javascript src=http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js></script>
<script type=text/javascript>
$(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
});
});
</script>
<style type=text/css>
#container.hidden #body {
display:none;
}
</style>
</head>
<body>
<div id=container>
<div id=header>
<h1>Title</h1>
<input type=checkbox name=test />
</div>
<div id=body>
<p>Some content</p>
</div>
</div>
</body>
</html>
Sin embargo, no puedo encontrar la manera de detener el burbujeo del evento sin hacer que el comportamiento del clic predeterminado (casilla de verificación activada / desactivada) no se ejecute.
Ambas cosas detienen el burbujeo del evento pero tampoco cambian el estado de la casilla de verificación:
event.preventDefault();
return false;













