したがって、子イベントが親イベントをトリガーしないようにする方法を尋ねる質問はたくさんありますが、反対の質問は見つからないようです。
次のように、親イベントのオンとオフを切り替えます。
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>
トグルは正常に機能しますが、[ここをクリックしてボディイベントを試す]をクリックしても、アラートは引き続き表示されます。子イベントを個別に参照せずに、bodyイベントがバインドされている場合、すべての子イベントを無視できるようにしたいと思います。
言い換えれば、私はトグルでこのようなことをするよりも良い解決策を探しています:
$('#example").attr('onclick', '');