0

特定のdivを除いてWebページ上の何かがクリックされたときにクエリが機能を実行するように、jqueryアクションを作成するにはどうすればよいですか?

4

2 に答える 2

5

これが私のやり方です:

$(document).on("click", function(){
    alert('foo');
});
$('#yourdiv').on("click", function(event){
    event.stopPropagation();
})

http://jsfiddle.net/v3N2T/5/

アイデアは、ページ全体にクリック イベントを配置し、アクションを実行したくない要素のクリックをキャッチし、クリック イベントがドキュメント クリック イベントに伝播されないようにすることです。

他のクリックイベントが発生している場合、相互作用が悪い可能性がありますが、とにかくその問題が発生する可能性があります...

PS Adrian の元の回答に対して、彼の変更を加えるだけでこのソリューションをより迅速に開発することができました。:)

于 2012-11-07T15:55:27.787 に答える
2

jQuery 1.7 では、以下の使用on()が推奨されています。

$(document).on("click", ":not(#yourdiv)", function(){
    //do your thing

    //important: return false to avoid repeating the call for each DOM element in
    //the hierarchy
    return false;
})

更新されたフィドルを参照してください: http://jsfiddle.net/adrianonantua/v3N2T/8/

ここで、注意点があります。フィドルの例では、不要な div がクリックされているように見えます。しかし、実際には、クリック イベントはその親によって発生しています。

于 2012-11-07T15:33:49.917 に答える