特定の要素がクリックされたときにコードをトリガーするイベントリスナーと、その要素以外の要素がクリックされた場合にコードを切り替えるイベントリスナーを作成したいと思います。これまでのところ、私が思いついたのは、2つのハンドラーを作成することです。1つは本体用、もう1つは要素用でsetTimeout()
、2つのハンドラーの競合を避けるためにコードを少し遅らせます。それは非常に醜く見えます、そして、まあ、正しくありません。ここで必要なことを行うためのより良い方法はありますか?または、使用できる「この要素以外のすべて」のハンドラーはありますか?私はこれをJQueryで行っているので、ライブラリに依存する回答を歓迎し、優先します。
質問する
699 次
2 に答える
2
多分あなたはこのようなものが欲しいでしょう(私が質問を理解したなら)
HTML:
<button id="btn">Click</button>
JS:
$('body').on('click', function(e){
if(e.target.nodeName=='BODY')
{
// clickd on body
}
else if($(e.target).attr('id')=='btn')
{
// clickd on button
}
});
例。
于 2013-01-12T09:47:37.137 に答える
1
クリックをIDが「div1」の要素ではなくすべての要素にバインドする場合は、次のように使用できます。
$('body').on('click', ':not(#div1)', function(){
});
于 2013-01-12T09:36:36.830 に答える