的addEventListener降不点火

问题描述:

我试图拖动事件附加到HTML DIV:的addEventListener降不点火

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

,但它不火。

我添加了一个click事件来测试添加事件,这事件触发:

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

我已阅读,返回从ondragover假将帮助:

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

你试过'ondrop',而不是'drop'? –

+0

是的,我试过,但根据这个链接:https://www.w3schools.com/jsref/event_ondrop.asp它是下降 – Alex

+0

https://www.w3schools.com/jsref/tryit.asp?filename = tryjsref_ondrag_all 对我来说完全正常 –

W3Schools有这些事件的工作示例,正如我在评论中所述, 很高兴帮助。

https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_ondrag_all

我在plunker中做了一些试验和错误,并得出结论,您首先需要在文档上设置eventListener(不使用use.getElementById('sub-main')至少在plunker中给出错误),然后指定在事件侦听器上触发目标。并且为了检测它可以被丢弃,你需要有其他的eventListeners,比如:drag,dragstart,dragover,dragleave和dragenter。 Just follow what they did here on MDN.