【发布时间】:2013-02-27 23:20:21
【问题描述】:
我的 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 的黑色部分(标题)来移动它。黑色部分是 CSS 中的一个简单的header。
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可以找到here.
如何做到这一点?
【问题讨论】:
-
可以添加HTML代码吗?
-
@Babblo 已添加。
-
但您要将事件添加到整个 div.column?尝试仅将其添加到
-
@ManishMishra 是的,这就是我要问的,如何仅将其添加到标题中;-)
标签: css html drag-and-drop