Перетаскивание иногда не удается с помощью jQuery UI Sortable в сочетании с slideToggle (с примером!)

У меня возникла проблема, когда сортировка с использованием jQuery UI Sortable не удалась, когда один из списков свернут с помощью slideToggle.

Вот демонстрация: http://jsfiddle.net/BNJzB/52/

Инструкции: сверните второй список, перетащите элемент из первого списка в третий, а затем попробуйте перетащить элемент из третьего списка в первый список.

Некоторые странные вещи, которые я заметил:

  • Перетаскивание будет работать, если все списки развернуты
  • Вероятность успешного перетаскивания зависит от положения прокрутки окна.

Я видел это в последних версиях Chrome и Firefox, но еще не тестировал IE.


person mathew    schedule 23.04.2012    source источник


Ответы (1)


Перетащенные элементы из 3 в 1 сбрасываются во 2.

Это может быть не идеальное решение, но если вы отключите перетаскивание в свернутых списках, все будет работать нормально. Обновите свой обработчик кликов так (также вы не должны использовать .live!)

$weekday.live('click', function() {
    var $this = $(this), // store the header/trigger
        $list = $this.next('ul'); // store the list

    $this.toggleClass('open').next('ul').slideToggle().toggleClass('closed');

    if ($this.hasClass('open')) { // if the header has the 'open' class, it is being toggled off
        // remove sortable functionality
        $list.sortable('disable');            
    } else {
        $list.sortable('enable');           
    }
});​

Проверьте это здесь: http://jsfiddle.net/BNJzB/57/

person Mathletics    schedule 16.07.2012