2009-09-23 10 views
18
私は指定されたDOMの場所にものを除き、ページ上のすべての要素を、選択するための方法を探しています

は...ここで私がやりたいものの例です:jQuery:___以外のすべてを対象としますか?

jQuery('*').except('.ignore').bind('click', function(e) { ... }); 

をして、このことが可能です"ネイティブjQuery"の方法?救助に

jQuery(":not(.ignore)").bind("click", function(e) { ... }); 

答えて

30

あなたが:not()セレクターを使いたいです!

$('*:not(.ignore)').bind('click', function(e) { ... }); 
+0

ああ、私は私の中でアスタリスクを推測します例はおそらく冗長です。 –

+0

はいです - この例では、アスタリスクの有無にかかわらず動作します。 –

+1

それを見て、私はアスタリスクなしで好きだと思う。 –

23

もう一つの方法は、すでに両方のためのセレクタを持っている場合:また

$('.foo').not('.ignore').bind(...); 

more filters

2

一方、ページ上のすべての要素に何かを同時に行うのは面倒です。より良い方法があります。私はいくつかの要素のクリックを無視して、次に体への結合を推薦する:

$(document.body).click(function(e){ 
    if($target.closest('.ignore').length) return true; 
    ... 
}); 

...またはjQueryの1.3の.live()、あなたのためにこれを行いいるを使用して:

$(":not(.ignore)").live(function(e){ 
    ... 
}); 
関連する問題