我的 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 中。我只希望 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 可以在这里找到。
如何才能做到这一点?