2017-10-10 4 views
1

발사하지 놓습니다. 내가 돌아 ondragover에서 거짓이 도움이 될 것입니다 읽었습니다는 또는 addEventListener는 내가 HTML의 DIV에 놓기 이벤트를 첨부하려고

document.getElementById('sub-main').addEventListener("click",() => {console.log('Click')}); 

:

document.getElementById('sub-main').addEventListener("ondragover",() => {return false}); 
    document.getElementById('sub-main').addEventListener("drop",() => {console.log('Drop')}); 

하지만이 중 하나가 작동하지 않습니다

나는 추가 이벤트와이 이벤트가 발생을 테스트하는 클릭 이벤트를 추가 한

draggable을 true로 설정해 보았습니다.

document.body.setAttribute('draggable', true); 

하지만 운이 없다!

getEventListeners(document.getElementById('sub-main')); 

을하고 (내가 선택한 어떤 임의의 이벤트 이름을 추가 할 수 있으며이 표시됩니다 있지만) 그것은 모든 이벤트를 표시합니다 -하지만 :

나는 다음과 같이 콘솔에 이벤트 리스너를 기록했다 이벤트가 여전히 실행되지 않습니다

아이디어가 있으십니까?

+0

'drop' 대신'ondrop'을 사용해 보셨나요? –

+0

예, 시도했지만이 링크에 따르면 : https://www.w3schools.com/jsref/event_ondrop.asp – Alex

+0

https://www.w3schools.com/jsref/tryit.asp?filename = tryjsref_ondrag_all 나를 위해 완벽하게 작동 괜찮습니다 –

답변

1

나는 plunker에서 시행 착오를했고, 결론적으로 문서에서 eventListener를 설정해야한다고 결론을 내렸다. (적어도 'sub-main'은 plunker에서 에러를 준다.) 발사 할 대상이있는 이벤트 리스너에 있습니다. 그리고 드롭 할 수 있다는 것을 탐지하기 위해서는 drag, dragstart, dragover, dragleave, dragenter와 같은 다른 eventListener가 필요합니다. Just follow what they did here on MDN.