2017-10-10 4 views
1

を発射しませドロップします。のaddEventListenerは、私はHTMLのdivをドロップイベントを添付しようとしています

私はイベントや、このイベントが発生する追加のテストにクリックイベントを追加しました:

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

私はondragoverからfalseを返すことに役立つことを読みました:

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を設定する必要があると結論づけました。(少なくともuse.getElementById( 'sub-main')はplunkerでエラーを出しています)ターゲットが発射されるイベントリスナーにドロップすることができることを検出するには、drag、dragstart、dragover、dragleave、およびdragenterのような他のeventListenerを持つ必要があります。 Just follow what they did here on MDN.

関連する問題