jQuery перетаскиваемый элемент - PullRequest
0 голосов
/ 24 июня 2011

Как сохранить перетаскиваемый элемент, чтобы при следующей загрузке мне не нужно было снова запускать функцию draggable().

Я думал, что наличие класса ui-draggable автоматически сделает элемент распознаваемым как перетаскиваемый, но я вижу, что это не так.

Это сохраненный элемент перетаскивания.

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

Нужно ли снова использовать функцию draggable (), чтобы сделать ее перетаскиваемой.

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Вы всегда должны использовать draggable (). Я бы предложил придерживаться ответа FishBasket и просто сделать это.

Причина, по которой вы должны сделать это снова, заключается в том, что это поведение, а не содержание. Так что это делается с помощью JS, а не HTML. Сохранение HTML не поможет вам, и вы не сможете «сохранить» выполнение JS - вам просто нужно запустить его снова.

Если вы мазохист, вы можете сделать это коллективно для всех ваших перетаскиваемых объектов на странице, используя живое событие / делегат при наведении курсора мыши. Но я бы не советовал использовать наведенное курсор мыши, поскольку это касается производительности для старых браузеров.

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

Это задержит перетаскиваемый вызов для элемента, пока вы не наведите курсор мыши на этот элемент. Проблема в том, что теперь вы должны проверить КАЖДЫЙ элемент onmouseover, чтобы увидеть, нужно ли делать перетаскиваемый вызов ...

1 голос
/ 24 июня 2011

Краткий ответ: да, вы должны вызывать режим перетаскивания при каждой загрузке страницы. Я бы просто назвал это в готовом мероприятии. Это типичный способ сделать это.

...