2013-09-27 5 views
25

다른 요소에 이벤트를 바인딩하고 Firefox를 제외한 모든 브라우저에서 이벤트를 드래그하면 예상대로 작동합니다. 그러나 파이어 폭스에서는 전혀 작동하지 않습니다. 발생하는 유일한 이벤트는 dragstart이며 다른 이벤트는 발생하지 않습니다. 무슨 일이야?Firefox에서 HTML5 드래그 앤 드롭이 작동하지 않는 이유는 무엇입니까?

+1

예제 코드와 Firefox 버전을 알려주십시오. –

+0

동시에 답변을 게시하기로되어 있었지만 그 이유는 확실하지 않았습니다. – RandallB

답변

20

는, 그래서 originalEvent 부분을 제거하고 텍스트 형식을 변경 (또는 IE는 문제를했다), 그것은 작동합니다

다른 이벤트에서
event.dataTransfer.setData('text', 'anything'); 

가 호출해야합니다

event.preventDefault(); 

또는 일부 이벤트에서는 anything.com으로 이동합니다.

+3

과'event.dataTransfer.setData ('text/html', 'anything') '은 FF로 끌어서 놓기로 싸우는 다른 사람을 위해 anything.com – pykiss

+0

으로 이동하지 않습니다. 이는 아마도 관련성이 높습니다. 이 특정 문제와 관련이 없지만 https : // stackoverflow.com/questions/11656061/event-clientx-showing-as-firefox-for-dragend-event –

+0

또한 Drop 이벤트 처리기에서 preventDefault()를 호출하여 해당 이벤트가 발생하지 않도록해야합니다 탐색. 모질라가이 끔찍한 구현을했을 때 모질라가 생각하고 있던 것을 확신하지 못했습니다. –

24

Firefox에서는 사용자가 이벤트에서 dataTransfer.setData 함수를 실행해야합니다. 예상대로 같은 드래그에

function dragstartHandler(event){ 

    event.originalEvent.dataTransfer.setData('text/plain', 'anything'); 

} 

미래 이벤트가 정상적으로 실행됩니다 : 당신 jQuery 사용자의

, 즉 다음과 같은 코드가 문제를 해결해야 의미합니다. 분명히 setData 인수를보다 유용한 데이터로 대체 할 수 있습니다. 내가 jQuery를 사용하지 않는

+1

IE에서 작동 시키려면 'text/plain'대신 'text'를 사용하십시오. http://stackoverflow.com/questions/12803235/drag-and-drop-not-working-in-ie-javascript-html5 – David

+0

을 참조하십시오. 그러나 현재까지는 MDN 끌기 설명서에 여전히 DragEvent에 dataTransfer 속성. originalEvent를 참조하지 않아도됩니다. –

+0

@LexLindsey, originalEvent는 답변에 표시된대로 jQuery입니다. – swiss196

1

Firefox에서 발생하는 리디렉션과 관련하여이 질문 솔루션에 대한 참고 자료로 사용할 수 있습니다.

이 문제를 해결하려면 놓기 방법의 기본 동작을 방지해야합니다.

function drop(e) { 
    if(e.preventDefault) { e.preventDefault(); } 
    if(e.stopPropagation) { e.stopPropagation(); } 

    //your code here 

    return false; 
} 

나는이 해결책을 this link에서 얻었다.

1

FF는 오버플로가 자동 또는 스크롤로 설정된 요소에서 비롯된 특정 마우스 이벤트를 먹는 데 오랫동안 부각되어 있습니다.

필자의 경우 드래그 앤 드롭을위한 라이브러리는 필자의 샘플과 파이어 폭스를 제외한 모든 브라우저에서 완벽하게 작동했다. 되는 스크롤 요소 없음

이 관련된 티켓을 파고 후, 나는 -moz-사용자 설정을 선택하는 것입니다이 티켓 https://bugzilla.mozilla.org/show_bug.cgi?id=339293

에 대한 기여에 대한 해결책 나는 완전히 신용을 발견 에서 끈다. 그것은 나의 특별한 문제를 해결했다.

관련 문제