divに複数のイベントリスナーdragstart
がdragenter
ありdragover
ますdragleave
:drop
、、、、、、dragend
。
それらをdivにアタッチするには、次のbody onload
関数を使用します。
function addListeners()
{
var cols = document.querySelectorAll('#columns .column');
[].forEach.call(cols, function(col) {
col.addEventListener('dragstart', handleDragStart, false);
col.addEventListener('dragenter', handleDragEnter, false);
col.addEventListener('dragover', handleDragOver, false);
col.addEventListener('dragleave', handleDragLeave, false);
col.addEventListener('drop', handleDrop, false);
col.addEventListener('dragend', handleDragEnd, false);
});
}
ただし、このコードはdiv全体にeventlistenerを追加します。divのヘッダーだけがこれらのイベントに応答するようにしたい:
これで、divの任意の部分をクリックしてドラッグできますが、divの黒い部分(ヘッダー)をクリックして移動できるようにしたいだけです。黒い部分はheader
CSSでは単純です。
HTML
<body onload="addListeners()">
<div id="columns">
<div class="column" draggable="true"><header>A</header>Textual information inside div A</div>
<div class="column" draggable="true"><header>B</header>Textual information inside div B</div>
<div class="column" draggable="true"><header>C</header>Textual information inside div C</div>
</div>
</body>
私の全ページのJSFiddleはここにあります。
これはどのように行うことができますか?