jQuery + сортировка + live



Я добавляю элементы списка на страницу динамически с помощью $.получить, а затем присоединить их к элементу OL. До этого момента все было как обычно.

Но jQuery не знает об этих новых элементах, когда они загружаются на страницу, и я не могу сделать их сортируемыми.

Я сделал несколько попыток с jQuery Live,но ничего не добился...

114   4  

4 ответов:

Метод refresh .sortable(), по-видимому, не распознает li, которые не добавляются через функции .sortable().

Попробуйте добавить свой код инициализации .sortable() в функцию, которую вы вызываете на document ready, и в ваш код, где вы динамически добавляете li ' s.

Вместо:

jQuery(document).ready(function() {
    jQuery("#mySortableOL").sortable({
        ...
    });
}
...
jQuery("#mySortableOL").append(...);
jQuery("#mySortableOL").sortable("refresh");

Попробуйте что-нибудь вроде:

jQuery(document).ready(function() {
    jQuery("#mySortableOL").doSort();
}
...
jQuery("#mySortableOL").append(...);
doSort();
...
function doSort(){
    jQuery("#mySortableOL").sortable({
        ...
    });
}

Вы пробовали ?сортируемый ("обновить")? http://docs.jquery.com/UI/Sortable#method-refresh

В конце вашего кода просто добавьте .sortable({}); со всеми вашими параметрами respecified. Возможно, есть способ сделать это без дублирования кода с помощью функции или чего-то еще, но, по крайней мере, это работает.

$('#List').live('click',function(e){

var myHTMLcode = '<li>New Item</li>'

myHTMLcode.appendTo('#List').sortable({
 items  : 'li',
 axis  : 'xy',    

 update  : function(event, ui){SPECIFIC Sortable FUNCTION CODE HERE}).fadeIn();
)};

Я нашел это решение и прекрасно для меня работает.

makesortable = function(){
        $( "#mylist" ).sortable({
            ...
        })
      };
...
// after list refresh :
makesortable();
    Ничего не найдено.

Добавить ответ:
Отменить.