J'ai une case à cocher que je veux effectuer certaines Ajax d'action sur l'événement click, cependant la case à cocher est également à l'intérieur d'un conteneur avec sa propre sur le comportement que je ne veux pas exécuter lorsque la case est cliqué. Cet exemple illustre ce que je veux faire:
<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>
Cependant, je ne peux pas comprendre comment arrêter la remontée d'événements sans causer le comportement par défaut, cliquez sur (case à cocher devenir cochée/non cochée) pour ne pas s'exécuter.
Les deux suivantes arrêter la remontée d'événements, mais aussi de ne pas modifier la case à cocher état:
event.preventDefault();
return false;