Подтвердить что ты не робот

Вызов пользовательской функции после jQuery sortable();

У меня есть этот маленький плагин, который заставляет элемент пульсировать три раза, вызывая .blink(). Я пытаюсь заставить его работать с элементом LI после его перетаскивания через jQuery.sortable(); но в этом контексте он, похоже, не работает.

$(function() {
$( "#sortable" ).sortable().blink("update-value", 3, 350);
$( "#sortable" ).disableSelection();
});

BLINK CODE

$.fn.blink = function (cls, times, delay) {
var $self = this.removeClass(cls);
clearTimeout($.fn.blink.handler);
! function animate(times) {
    if (times) {
        $self.toggleClass(cls);
        $.fn.blink.handler = setTimeout(function () {
            animate(times - 1);
        }, delay);
    }
}(times * 2);
return this;
};
4b9b3361

Ответ 1

Если вы используете jQueryUI-сортируемый плагин, и если вы хотите сделать мигающий элемент, который был перетаскиван и отброшен (отсортирован), возможно, вы должны использовать обратные вызовы, которые уже доступны в сортируемом API:

Когда вы настраиваете сортировку, вы можете дать обратный вызов для события изменения:

$( ".selector" ).sortable({
    change: function( event, ui ) {}
});

API говорит: "Это событие срабатывает при сортировке, но только при изменении позиции DOM"

Вы также можете дать обратный вызов для события обновления:

$( ".selector" ).sortable({
    update: function( event, ui ) {}
});

API говорит: "Это событие срабатывает, когда пользователь прекратил сортировку и изменилось положение DOM"

В вашем случае вы должны использовать обратный вызов update и вызвать метод blink для вашего элемента.

Примечание. Элемент drag and drop должен быть доступен в объекте ui, используйте console.debug для проверки содержимого ui