href를 사용하면 화면 중간에 사진이 열립니다 (fancybox/lightbox/lytebox와 같음). 사진이있는 div를 제외하고 사용자가 사이트의 아무 곳이나 클릭 할 때 닫으려고합니다.jQuery에서 1 요소를 제외한 모든 것을 어떻게 목표로합니까?
jQuery를 어떻게 타겟팅 할 수 있습니까?
href를 사용하면 화면 중간에 사진이 열립니다 (fancybox/lightbox/lytebox와 같음). 사진이있는 div를 제외하고 사용자가 사이트의 아무 곳이나 클릭 할 때 닫으려고합니다.jQuery에서 1 요소를 제외한 모든 것을 어떻게 목표로합니까?
jQuery를 어떻게 타겟팅 할 수 있습니까?
jQuery .not()
메서드를 사용하십시오. 이 작업을 수행 할 때
$(".elements").not(".this-element").on("click", function() {
$(".this-element").hide();
});
@nnnnnn으로
는 지적 업데이트
, 당신은 몇 가지 복잡한 전파 문제로 실행. 더 좋은 방법은 오버레이 div ( @j08691에서 언급 한 것처럼 숨기려는 요소보다 작은 Z- 인덱스가있는)를 사용하고 그 위에 바인딩하는 것입니다.또는 (내가하지 않는 것이 좋습니다) 다른 처리기 추가 :
$(".this-element").on("click", function(e) {
e.stopPropagation(); // ugly boilerplate to fix thoughtless bindings
);
클릭 이벤트가 자식에서 컨테이너로 전파되기 때문에'.not()'에 의해 제외 된 요소가 클릭 핸들러가 바인딩 된 요소의 자식 인 경우에는 작동하지 않습니다. 이 경우 이벤트 대상을 확인하거나 자식에게 두 번째 핸들러를'stopPropagation()'에 추가해야합니다. – nnnnnn
이 일반적 이미지보다 작은 Z-인덱스 오버레이 DIV하여 수행됩니다. – j08691