2013-02-11 43 views
11

Tôi có plugin nhỏ này gây ra một yếu tố để đập ba lần gọi một .blink(). Tôi đang cố gắng làm cho nó hoạt động trên phần tử LI sau khi nó đã được kéo và thả qua jQuery .sortable(); nhưng nó dường như không hoạt động trong bối cảnh này.Gọi chức năng tùy chỉnh sau khi jQuery sắp xếp();

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

BLINK MÃ

$.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; 
}; 

Trả lời

35

Nếu bạn đang sử dụng các plugin sắp xếp được jQueryUI, và nếu bạn muốn thực hiện một yếu tố nhấp nháy mà đã được kéo và thả (sắp xếp), có thể là bạn nên sử dụng callbacks đó đã có sẵn trong API sắp xếp được:

Khi bạn cấu hình của bạn sắp xếp được, bạn có thể cho một callback cho sự kiện thay đổi:

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

API cho biết: "Sự kiện này được kích hoạt trong sắp xếp, nhưng chỉ khi vị trí DOM đã thay đổi"

Bạn cũng có thể cung cấp cho một callback cho sự kiện cập nhật:

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

API cho biết: "Đây sự kiện được kích hoạt khi người dùng ngừng phân loại và vị trí DOM đã thay đổi "

Trong trường hợp của bạn, bạn nên sử dụng gọi lại cập nhật và gọi phương thức nhấp nháy cho phần tử của bạn.

Lưu ý: kéo phần tử và giảm nên có sẵn trong đối tượng ui, sử dụng một console.debug để kiểm tra nội dung của ui

+0

công trình như một say mê, giải thích cũng – Timo

Các vấn đề liên quan