的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'));
,它显示了所有的事件(虽然我可以添加任何随机事件的名字,我选择了,它会显示出来) - 但事件仍然不火
任何想法?
答
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.
你试过'ondrop',而不是'drop'? –
是的,我试过,但根据这个链接:https://www.w3schools.com/jsref/event_ondrop.asp它是下降 – Alex
https://www.w3schools.com/jsref/tryit.asp?filename = tryjsref_ondrag_all 对我来说完全正常 –