为droppable事件添加延迟

时间:2012-08-02 22:14:19

标签: javascript jquery jquery-ui jquery-ui-draggable jquery-ui-droppable

我有一个带有dropover事件处理程序的droppable元素。在droppable上拖动元素会扩展节点。但是,我想添加一个延迟,以便节点不会立即扩展,即你必须在可放置的droppable上保持一秒钟才能扩展。

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

我的第一个想法就是在setTimeout上使用node.expand(),但这不符合我的要求,只会延迟节点扩展。它看起来不像我可以设置任何配置来实现这一点,所以我想知道我该怎么做。

2 个答案:

答案 0 :(得分:4)

这样的事可能吗?

var globalTimer;

//..
droppable.over = function(event, ui)
{
    globalTimer = setTimeout(function(){node.expand()}, 1000);
},
droppable.out = function(event, ui)
{
    clearTimeout(globalTimer);
};

答案 1 :(得分:0)

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

但我可能误解了您,您希望节点稍后出现还是仅在其停留在droppable中1000毫秒时才会显示?