javascript - HTML5 从子元素拖放父元素

标签 javascript html

我有一个元素列表,每个元素中都有一个句柄控制元素。我可以轻松地拖放元素以重新排序。但是我不确定将拖动开始限制在句柄元素上。

例如:

<ul>
    <li draggable="true" ondragstart="..." ondrop="..." ondragover="..."><div class="reorder"></div>Item 1</li>
    <li draggable="true" ondragstart="..." ondrop="..." ondragover="..."><div class="reorder"></div>Item 2</li>
    <li draggable="true" ondragstart="..." ondrop="..." ondragover="..."><div class="reorder"></div>Item 3</li>
</ul>

在上面的代码中,我可以单击并拖动句柄元素或文本“Item #”来重新排序。

我想在 ondragstart 函数中我可以检查 event.target 的类是否是句柄,如果不是则执行 event.preventDefault() 但它似乎是目标无论拖动从 div 还是 li 开始,始终是 li

那么有没有办法在 ondragstart 事件中检查鼠标是否在子元素上

最佳答案

我基于 Mouser 的评论。看这个例子:

var object = document.querySelector('li');

var dragger = document.querySelector('li .reorder');

dragger.addEventListener('mousedown', function () {
  object.setAttribute('draggable','true');
});

dragger.addEventListener('mouseout', function () {
  object.removeAttribute('draggable');
});

http://codepen.io/anon/pen/qOWJYF

关于javascript - HTML5 从子元素拖放父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25476189/

相关文章:

javascript - 如何更改 HTML5 颜色输入内半径

javascript - 使用 math.random() 在 jquery 中为 div 设置动画;

javascript - 将 Rails 变量传递给 js 文件

javascript - 如何在全日历中设置外部事件的持续时间

javascript - 如何通过单击链接 javascript 提交表单

javascript - 在放大弹出回调函数中使用 data 属性定义 owl carousel

javascript - WebRTC ~ 在知道 IP 和 PORT 时无需使用中间服务器即可连接

php - 如何使图像按钮运行 PHP 脚本?

javascript - knockout 可观察到未受到约束

javascript - 如何将javascript变量传递给html标签