【发布时间】:2012-08-02 22:14:18
【问题描述】:
我有一个带有 dropover 事件处理程序的 droppable 元素。在 droppable 上拖动一个元素会展开一个节点。但是,我想添加一个延迟,以便节点不会立即展开,即在展开之前,您必须将可拖动对象放在可放置对象上一秒钟。
droppable.over = function(event, ui) {
// expand node if dragover lasts 1000 milliseconds
node.expand();
};
我的第一个想法是在node.expand() 上简单地使用setTimeout,但这并没有达到我想要的效果,它只是延迟了节点扩展。看起来我没有任何配置可以实现这一点,所以我想知道我该怎么做。
【问题讨论】:
-
您可能会考虑使用一个全局变量,将 = 设置为超时,并在鼠标熄灭时使用另一个函数来取消 setTimeout 作业。
-
不确定您是否可以调整以下内容,以便检测用户是否在拖动元素时悬停。 cherne.net/brian/resources/jquery.hoverIntent.html
标签: javascript jquery jquery-ui jquery-ui-draggable jquery-ui-droppable