子イベントが親イベントを引き起こさないようにする方法はたくさんありますが、反対のものは見つけられません。親イベントが子イベントをトリガーするのを防ぐ
私は上などオフ親イベントを切り替える:私はこのようなページでこれを実行する場合
var body_event = function(e){
console.log('test');
};
$('#btn').toggle(
function(e){
$('body').bind('click', body_event);
},
function(){
$('body').unbind('click', body_event);
}
);
現在:
<body>
<div id="btn">click to activate</div>
<div id="example" onclick="alert('do not show this when event is bound')">
try the body event by clicking here
</div>
</body>
トグルが正常に動作しますが、私は上のクリックしたとき「ここをクリックしてボディーイベントを試してください」と表示されてもアラートは表示されます。子イベントを個別に参照せずにボディイベントがバインドされている場合、すべての子イベントを無視できるようにします。私はトグルにこのような何かを行うよりも、よりよい解決策を探していますつまり
:
$('#example").attr('onclick', '');
。親がイベントを持っている場合、子供のために発砲しないでください。 StopPropagationは、反対のシナリオでのみ有効です。 – mrtsherman
humm ...それは本当です、ありがとう! –
ええ、親イベントの前に子イベントがトリガーされることに注意してください。 –