我有一个像这样的可拖动:
$(".tab li").draggable({
revert: true,
delay: 1000,
opacity: .75,
helper: "clone",
appendTo: "body"
})
.bind("dragstart", this.doSomething)
.bind("dragstop", this.undoSomething);
因此,在按住鼠标一秒钟后,就可以开始拖动了。只要您在 1 秒后移动鼠标,它就可以正常工作。移动鼠标后,dragstart 事件会立即按应有的方式发送。我想要的是“dragstart”在 1 秒后触发,即使您不拖动鼠标也是如此。
我知道我可以这样做:
.bind("mousedown", this.setSomeIntervalAndWait)
但我需要访问作为 draggable() 的一部分创建的 ui.draggable 元素,因此 mousedown/mouseup 解决方案将不起作用。
如果不修改 jQueryUI 以在延迟而不是鼠标移动时触发事件,这是否可能?我可以使用超时来破解一些东西,克隆对象,定位它并在“dragstart”上删除它,但我希望有一些不那么复杂的东西。