jQuery draggable元素

时间:2011-06-23 21:49:41

标签: jquery jquery-ui jquery-ui-draggable

如何保存可拖动元素,以便下次加载时,我不必再次发出draggable()功能。

我认为让类ui-draggable会自动使元素被识别为可拖动,但我发现情况并非如此。

这是保存的可拖动元素。

<div id="one" class="ui-draggable">test 1 </div>

我是否必须再次发出draggable()函数才能使其可拖动。

2 个答案:

答案 0 :(得分:1)

简短的回答是:是的,每次加载页面时都必须调用draggable。我会在准备好的事件中调用它。这是典型的做法。

答案 1 :(得分:1)

你总是要发出draggable()。我建议坚持使用FishBasket的回应并做到这一点。

你必须再次这样做的原因是因为它的行为 - 而不是内容。所以它是用JS完成的,而不是HTML。保存HTML对您没有帮助,您无法“保存”JS执行 - 您只需再次运行它。

如果你是受虐狂,你可以在页面上为你的所有可拖动者集体做到这一点,尽管在鼠标悬停时使用现场活动/委托。但我不建议使用实时鼠标悬停,因为它是旧版浏览器的性能问题。

$(document).delegate('selectorForDraggables', 'mouseover', function() {
    var $this = $(this); 
    $this.data('isDraggable') || $this.draggable().data('isDraggable', true);
});

这将延迟对元素的可拖动调用,直到您将鼠标悬停在该元素上。问题是现在你必须检查onmouseover上的每个元素以查看是否进行可拖动调用...