1

我有一个带有 dropover 事件处理程序的 droppable 元素。将一个元素拖到可放置对象上会展开一个节点。但是,我想添加一个延迟,以便节点不会立即展开,即您必须在它展开之前将可拖动对象放在可放置对象上一秒钟。

droppable.over = function(event, ui) {
    // expand node if dragover lasts 1000 milliseconds
    node.expand();
}; 

我的第一个想法是简单地使用setTimeouton node.expand(),但这并没有达到我想要的效果,它只是延迟了节点扩展。看起来我无法设置任何配置来实现这一点,所以我想知道我该怎么做。

4

2 回答 2

4

可能是这样的?

var globalTimer;

//..
droppable.over = function(event, ui)
{
    globalTimer = setTimeout(function(){node.expand()}, 1000);
},
droppable.out = function(event, ui)
{
    clearTimeout(globalTimer);
};
于 2012-08-02T22:23:48.950 回答
0

尝试添加这个setTimeout(function () { node.expand() }, 1000);

但我可能误解了你,你希望节点稍后出现还是仅在它停留在可放置 1000 毫秒时才出现?

于 2012-08-02T22:21:14.510 回答