Mam wyboru, że chcę, aby wykonać pewne działania Ajax na zdarzenia click, jednak pole wyboru jest również wewnątrz kontenera z własnym click zachowania, że nie ma się, gdy pole jest kliknięty. Próbka ta ilustruje to, co chcę zrobić:
<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>
Jednak nie mogę dowiedzieć się, jak zatrzymać zdarzenie propagacji bez powodowania domyślne zachowanie click (pole staje sprawdzane / niezaznaczone), aby nie uruchomić.
Obydwa z następujących zatrzymać zdarzenie propagacji, ale również nie zmienić stan pola wyboru:
event.preventDefault();
return false;













