2011-02-09 4 views
0

내가 여기서하려고하는 것은 jquery를 두 개의 상자로 구성하는 것입니다. 첫 번째 상자는 첫 번째 상자를 숨기고 클릭하면 새 상자를 열 수 있습니다. 새로운 (두 번째) 상자는 요소 외부의 본문을 클릭 할 때 제거됩니다.중첩 요소 외부에서 마우스 dblckick을 감지합니까?

나는 exit/enter 이벤트를 포함하여 differnt 것들을 가지고 놀았지만,이 효과를 얻는 간단하고 쉬운 방법을 찾을 수 없습니다.

저는 무엇을하려고하는지 보여주는 jsfiddle을 설정했습니다.

http://jsfiddle.net/wdAPu/2/

답변

2

난 당신이 #opener에 바인딩 된 이벤트 핸들러에

event.stopPropagation(); 

를 추가 할 필요가 있다고 생각. 이렇게하면 이벤트가 버블 링되지 않고 #body에서 이벤트 처리기를 발생시키지 않습니다. 이 여전히 더블 클릭 경우 새로운 상자 안에 새로운 상자를 숨 깁니다 지금 event.stopPropagation

: http://jsfiddle.net/wdAPu/3/

참조 :

는 업데이트 된 버전을 참조하십시오. 이를 막으려면 이벤트 핸들러를 바인딩하고 이벤트가 버블 링되지 않도록해야합니다. 이것은 바로 가기 수행 할 수 있습니다 :

$('#content').dblclick(false); 

(여기 참조 : http://jsfiddle.net/wdAPu/6/)


동적으로 상자를 작성하는 경우는, .delegate()event.stopImmediatePropagation()를 보라.

+0

두 이벤트의 첫 번째 문제를 해결하지만 두 번째 문제는 #content 안의 dblclick이 #body에 연결된 이벤트를 트리거하는 것입니다. – Incognito

+0

@ user257493 : 내 대답의 최신 버전을 읽었습니까? '$ ('# content'). dblclick (false);'를 추가해야합니다. –

관련 문제