2017-10-10 22 views
1

我試圖拖動事件附加到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 對我來說完全正常 –

回答

1

我在plunker中做了一些試驗和錯誤,並得出結論,您首先需要在文檔上設置eventListener(不使用use.getElementById('sub-main')至少在plunker中給出錯誤),然後指定在事件偵聽器上觸發目標。並且爲了檢測它可以被丟棄,你需要有其他的eventListeners,比如:drag,dragstart,dragover,dragleave和dragenter。 Just follow what they did here on MDN.