我正在努力克服HTML5拖延,因为我想要实现特定的东西.
我有一个可以使用HTML5 API拖动的div,但我只想让用户真正意味着拖动(因为它之后会触发一些更多的处理程序).
这就是为什么我dragstart在满足某个条件时触发的原因mousemove.
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);
}
};
Run Code Online (Sandbox Code Playgroud)
但是正如你已经可以猜到的那样,在dragstart正确触发的情况下,这不起作用,但没有其他拖拽事件(drag,dragend...).
有什么我在那里没有妥善处理?或者你能看到一个解决方法来从mousemove处理程序启动浏览器的拖放吗?(按下鼠标按钮)
提前致谢!
你可以在这里找到一个简单的运行示例