当使用容差时,jquery.event.drop过滤掉目标

时间:2013-04-20 12:42:07

标签: drag-and-drop jquery

我使用jquery.event.drag/drop完全重新排序树

重新排序我使用基于this demo

的自定义“容差”功能

当树很小时,所有工作都很完美,但是有了一些数据(> 2k),它就像地狱一样慢

作为树的开放和关闭节点,实际放置目标通常为~50但是代码不需要过滤器,并且仍然计算每个光标移动2k元素。

我尝试了一些方法来过滤可用的放置目标,但没有任何成功

以dropinit事件为例:

return $(this).is( $availableDrop );

或在$ .drop选项中设置过滤器选项

filter:".validdrop"
我真的回归0;在当前元素不是允许的时候在公差函数中......

它是~~~~可用,但仍然很慢,因为地狱

set up a fiddle with minimum thing帮助我Obi Wan Kenobi你是我唯一的希望

1 个答案:

答案 0 :(得分:0)

好吧,这是完整的“live”的原因,将所有内容提取到专用函数中,并在初始元素上使用经典init,并且将来的一个工作很棒。

$.fn.initDrag = function(){
    $(this).drag('init',draginit).drag('start',dragstart).drag('end',dragend).drag(indrag).drop('init',dropinit);
};

$(selector).initDrag();

fast version fiddle :)