jQuery Draggable все еще может опуститься на пустой - как мне остановить это? - PullRequest
1 голос
/ 17 марта 2011

Если у меня есть перетаскиваемый объект jQuery

$('#drag-me').draggable({
  helper: 'clone',
  connectToSortable: '#sortable'
});

и подключаемая сортируемая

$('#sortable').sortable({
  receive: performMagic
});

Я не могу предотвратить падение этого перетаскиваемого объекта на пустую сортируемую.

Сортируемый сам по себе имеет опцию dropOnEmpty, которая, при значении false, предотвращает сброс элементов с , которые сортируются на пустую сортируемую;но Draggable не имеет такой опции.

Я пробовал это:

$('#sortable').sortable({
  start: function(e, ui) {
    if (ui.item[0].nodeName == 'IMG') {
       $(this).sortable('cancel')
     }
  }
});

В моем случае элемент # drag-me - это изображение, а элементы Sortable - нет.Функция executeMagic успешно преобразует изображение в элемент TBODY, который содержит сортируемый элемент.Но результаты были противоречивы;иногда он успешно отменял операцию, но иногда он прерывался в других местах.

Вопрос в том, нахожусь ли я на правильном пути?Это единственный способ предотвратить перетаскивание Draggable на пустой связанный Sortable?Есть ли способ, которым я могу похитить существующее поведение Sortable-to-Sortable?

TIA Al

1 Ответ

0 голосов
/ 17 марта 2011

Можете ли вы проверить, является ли сортируемый объект пустым в событии receive?Что-то вроде:

$('#sortable').sortable({
  receive: function(event, ui) { 
    if ($('#sortable').children().length > 0) {
        // PerformMagic...
    }
  }
});
...