2010-07-21 8 views
2

지금 당장 마우스를 가져 가면 슬라이드가 열리 며 슬라이드가 닫히면 슬라이드가 닫힙니다. 누군가가 그것의 바깥 쪽을 클릭 할 때까지 열어 둘 수 있으면 좋겠다.jquery - div 외부에서 클릭

아이디어가 있으십니까? 사용자가 아무 곳이나 클릭 할 때

$('#someDiv').mouseenter(function() { 
    $(this).codeToOpenIt 
}); 

는 다음을 닫습니다 문서에 클릭 이벤트를 배치 : 당신이 마우스를 가져 가면 열리도록

답변

1

먼저 그냥 mouseenter 이벤트를 할당합니다.

$(document).click(function() { 
    $('#someDiv').codeToCloseIt 
}); 

이렇게 작동하는 이유는 클릭 한 요소에서 루트까지 버블이 발생하기 때문입니다. 따라서 documentclick() 이벤트를 배치하면 페이지의 모든 클릭이 감지되고 요소가 닫힙니다.

return false; 

또는

event.stopPropagation(); 

이 발사에서 문서에 핸들러를 방지 버블이 정지하게됩니다 : 않는 클릭이 페이지에있는 모든 요소는 것을

참고.

+0

나는 div를 닫으 려하지 않을 것이라고 덧붙인다. 위의 코드에서 해당 div를 클릭하면된다. 이를 방지하려면 문서의 클릭 핸들러에 도달하지 못하도록 전파를 중지하는 div 핸들러 ('event.stopPropagation()')에 클릭 핸들러를 추가하십시오. –

+0

또한 요소에 포커스가있는 경우 키 스트로크 이벤트를 추가 할 수 있습니다. 예를 들어 누군가가 ESC 키를 누를 경우이를 닫습니다. –