2010-11-20 6 views
3

내 웹 사이트의 일부로 html/javascript에서 내 드래그 앤 드롭 스크립트를 만들고 있습니다. 파이어 폭스에서 시도했을 때를 제외하고는 모두 잘 작동합니다. 일부 디버깅을 수행하고 firefox가 event.target에서 잘못된 대상을 반환한다는 것을 알았습니다. 여기 firefox의 Event.target 문제

코드의 중요한 부분입니다,

$(document).bind({ 
    'mousemove' : function(e){ 
    console.log(e); 

+ 일부 구문 오류가있을 수 있습니다 있도록

var obj = e.target; 
if(obj.className == "sidebarItem"){ 
    dt.root.handleHover(e.target); 
    }else if(obj.className == "sidebarItemText"){ 
    dt.root.handleHover(e.target.parentNode); 
    } 

(난 그냥 여기에이 코드를 입력 + 더 많은 코드를하지만, 사람들은 어떻게 작동하는지에 대한 아이디어를 얻습니다.)

이 코드는 사용자가 "드래그 가능"인 div를 클릭하면 바인딩되고 마우스 버튼을 다시 놓으면 바인딩 해제됩니다.

모두 잘 작동합니다. IE와 Chrome에서 모두 정상적으로 작동합니다. 여기서 div로 가져갑니다.하지만 firefox event.target에서는 마우스 가까이 있지 않은 div를 반환합니다. 실제로 div 뒤에있는 div입니다. 첫 번째 클릭을 캡처합니다. 상대 위치로 설정됩니다.)

누구든지 내가 잘못 알고 상황

---------- 
|a | bbbb 
|a | bbbb 
|a | bbbb 

가에서 드래그 된 = 드래그 대상

B = 및 파이어 폭스는 반환도 사업부입니다 이리?

편집 :

난 항상 event.target로 반환 사업부 때문에 오버 플로우-Y의 이상한 행동 것을 발견 : 자동; 내가 그것을 껐을 때 잘 동작하지만 오버플로가 있어야합니다 .. 아직 아무런 단서가이 문제를 해결하는 방법 : <

+0

dt.root 란 무엇입니까? –

+0

아, 모든 기능이 저장되어있는 객체입니다. 중요하지 않습니다. – Jorik

답변

0

event.target 이벤트가 전달 된 대상으로 반환합니다. 자세한 내용은 https://developer.mozilla.org/en/DOM/EventTarget을 확인하십시오. 아마도 이벤트를 발생시키는 요소 위에 요소를 설정하기 위해 요소를 재조정 할 수 있습니다.