【发布时间】:2014-03-17 04:13:24
【问题描述】:
我目前正在为 HTML5 拖放而苦苦挣扎,因为我想实现一些特定的目标。
我有一个可以使用 HTML5 API 拖动的 div,但我只希望在用户真正想要的情况下进行拖动(因为它会触发更多的处理程序)。
这就是为什么我在mousemove满足某个条件时触发dragstart。
var fnMousemove = function (oEvent) {
if (myCondition) {
document.removeEventListener("mousemove", fnMousemove);
oDraggable.setAttribute("draggable", true);
oDraggable.addEventListener("dragstart", fnDragstart);
oDraggable.addEventListener("drag", fnDrag);
oDraggable.addEventListener("dragend", fnDragend);
// Fire a dragstart event, now that we know what to do with it
var e = document.createEvent("MouseEvents"); //$NON-NLS-1$
e.initEvent("dragstart"); //$NON-NLS-1$
oDraggable.dispatchEvent(e);
}
};
但正如您已经猜到的那样,这在dragstart 被正确触发但没有其他拖动事件(drag、dragend...)的意义上不起作用。
那里有什么我没有妥善处理的吗?或者你能看到从鼠标移动处理程序启动浏览器拖放的解决方法吗? (按住鼠标按钮)
提前致谢!
你可以找到一个简单的运行例子here
【问题讨论】:
标签: javascript html drag-and-drop html5-draggable