我目前在处理HTML5拖放时遇到了困难,因为我想实现特定的功能。
我有一个可以使用HTML5 API进行拖动的div,但我只希望在用户真正需要拖动时才触发拖动(因为之后会触发一些其他的处理程序)。
这就是为什么当从mousemove中满足某个条件时,我会触发dragstart。
但是,正如你已经猜到的那样,这种方法并没有起作用,因为`dragstart`事件确实被正确触发了,但没有其他拖动事件(`drag`、`dragend`...)。
我是否没有正确处理呢?或者您能否看到从mousemove处理程序启动浏览器的拖放的解决方法?(鼠标按钮被按住)
谢谢!您可以在这里找到一个简单的运行示例。
我有一个可以使用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`...)。
我是否没有正确处理呢?或者您能否看到从mousemove处理程序启动浏览器的拖放的解决方法?(鼠标按钮被按住)
谢谢!您可以在这里找到一个简单的运行示例。