2012-11-20 3 views

답변

0

jQuery .not() 메서드를 사용하십시오. 이 작업을 수행 할 때

$(".elements").not(".this-element").on("click", function() { 
    $(".this-element").hide(); 
});​ 

http://jsfiddle.net/6McAF/

@nnnnnn으로

는 지적 업데이트

, 당신은 몇 가지 복잡한 전파 문제로 실행. 더 좋은 방법은 오버레이 div ( @j08691에서 언급 한 것처럼 숨기려는 요소보다 작은 Z- 인덱스가있는)를 사용하고 그 위에 바인딩하는 것입니다.

또는 (내가하지 않는 것이 좋습니다) 다른 처리기 추가 :

$(".this-element").on("click", function(e) { 
    e.stopPropagation(); // ugly boilerplate to fix thoughtless bindings 
); 
+1

클릭 이벤트가 자식에서 컨테이너로 전파되기 때문에'.not()'에 의해 제외 된 요소가 클릭 핸들러가 바인딩 된 요소의 자식 인 경우에는 작동하지 않습니다. 이 경우 이벤트 대상을 확인하거나 자식에게 두 번째 핸들러를'stopPropagation()'에 추가해야합니다. – nnnnnn

관련 문제