0

特定の要素がクリックされたときにコードをトリガーするイベントリスナーと、その要素以外の要素がクリックされた場合にコードを切り替えるイベントリスナーを作成したいと思います。これまでのところ、私が思いついたのは、2つのハンドラーを作成することです。1つは本体用、もう1つは要素用でsetTimeout()、2つのハンドラーの競合を避けるためにコードを少し遅らせます。それは非常に醜く見えます、そして、まあ、正しくありません。ここで必要なことを行うためのより良い方法はありますか?または、使用できる「この要素以外のすべて」のハンドラーはありますか?私はこれをJQueryで行っているので、ライブラリに依存する回答を歓迎し、優先します。

4

2 に答える 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 に答える