id=child-button をクリックした場合のイベント伝播は、
- id=child-button のクリックイベント
- id=parent-div のクリックイベント
と動作します。
id=child-buttonのクリックイベントで、stopPropagation() を使用すると
- id=child-button のクリックイベント
- 終わり(id=parent-div のクリックイベントは呼ばれない)
id=child-checkboxのクリックイベントで、preventDefault() を使用すると
- id=child-button のクリックイベント。要素が持つイベントは、キャンセルされる
- id=parent-div のクリックイベント
要素のイベントをキャンセルするため、永遠にチェックすることができません。
$('#parent-div').on('click',function(){
alert("parent-div : click");
});
$('#child-button').on('click', function(event){
// イベント伝播を中止する(親のイベントは発火しない)
event.stopPropagation();
alert("child-button : click");
});
$('#child-checkbox').on('click', function(event){
// 要素が持つイベントをキャンセル(チェックさせない)
event.preventDefault();
alert("child-checkbox : click");
});

コメント