2009-09-23 4 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){ 
    ... 
}); 
관련 문제