2011-03-23 10 views
3

div에 onMouseUp 이벤트가 설정된 HTML이 있습니다. 해당 div 내에는 많은 요소가 있으며 그 중 일부에는 끌려는 핸들 아이콘이 들어 있습니다. 아이콘에는 onMouseDown 이벤트가 있습니다.onMouseUp이 실행되지 않는 이유는 무엇입니까?

마우스를 아이콘에 놓고 놓으면 먼저 아이콘의 onMouseDown 이벤트가 발생하고 div의 onMouseUp 이벤트가 발생합니다.

그러나 아이콘을 클릭하여 div의 다른 부분으로 드래그하고 놓으면 mouseDown 이벤트가 예상대로 실행되고 onmouseUp 이벤트가 시작되지 않습니다.

두 가지 질문이 있습니다.

1) 왜 이런 행동입니까?

2) 브라우저에서 독립적 인 방식으로 드래그 드롭을 처리하는 올바른 방법은 무엇입니까?

과부에 firefox 3.6.16을 사용하고 있지만 Internet Explorer 8도 같은 방식으로 작동합니다.

+0

브라우저를 독립적으로 처리하는 것이 매우 복잡하기 때문에 대부분의 사람들은 [jQuery UI의 Draggable] (http://jqueryui.com/demos/draggable/)/[Droppable] (http://jqueryui.com/demos/droppable /) 프레임 워크 또는 이와 유사한. – Orbling

답변

0

나는 그것이 공정한 대답 인 것 같지 않다는 것을 안다. 그러나 가장 좋은 대답은 (내 의견으로는) jQuery와 같은 것을 사용하고 draggable을 사용하는 것이다. 필자는 Dojo와 jQuery 만 사용했지만 브라우저 독립적 인 드래그/드롭 인터페이스를 사용하기 쉽습니다.

다음은 jQuery를 설명하는 URL입니다.

http://jqueryui.com/demos/draggable/

+0

좋은 해결책이 될 것입니다. 감사. 불쌍한 스타일은 일치하지 않을 것이다. 그러나 나는 그것을 돌아볼 수 있다고 생각한다. – Ian

0

난 그냥이 오늘 씨름하고있다. http://www.brainjar.com/dhtml/drag/demo.html에 원시 자바 스크립트를 사용하는 멋진 데모가 있습니다 (모든 브라우저 검사가 함축하고 있음). 열쇠는 mousedown 이벤트에서 이벤트 전파를 중지하는 것입니다.

Dojo에서 작업 중이며 dragStart (즉, mousedown에 연결된 함수)에서 dojo.stopEvent를 사용하면 마우스 업과 차이가 있습니다.

관련 문제