用手柄拖放

时间:2014-10-09 16:40:00

标签: html5 drag-and-drop

我有一个包含16x16px跨度的div。我希望在用户点击并拖动此图标时启动拖动事件,但它应该拖动整个div。我在这里尝试按照本教程进行操作:http://www.html5rocks.com/en/tutorials/dnd/basics/

我无法弄清楚如何用手柄做到这一点。请恭喜。

2 个答案:

答案 0 :(得分:19)

以下是一个工作示例:https://jsfiddle.net/pwt1cbjc/



var draggable = document.getElementById('draggable');
var handle = document.getElementById('handle');
var target = false;
draggable.onmousedown = function(e) {
    target = e.target;
};
draggable.ondragstart = function(e) {
    if (handle.contains(target)) {
        e.dataTransfer.setData('text/plain', 'handle');
    } else {
        e.preventDefault();
    }
};

#draggable {
    width: 100px;
    height: 100px;
    border: 1px solid black;
}
#handle {
    width: 0;
    height: 0;
    border-right: 20px solid transparent;
    border-top: 20px solid black;
    cursor: move;
}

<h1>Drag Handle</h1>

<div id="draggable" draggable="true">
    <div id="handle">
    </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:7)

我对SaphuA的答案做了些微修改,以允许突出显示文本。

诀窍是在拖动句柄获得foo = '''line 1 line 2 line3''' 事件之前不添加draggable属性。

这是一个演示:https://jsfiddle.net/a6tgy9so/1/

相关问题