У меня есть сортируемый список видео, инициализированный с опцией:
items: '.videoBox:not(.isFirst, .isLast)',
Первое и последнее видео не сортируются и не перетаскиваются ни в коем случае - это прекрасно!
Это связано с другим перетаскиваемым списком видео с помощью опции connectToSortable
. Некоторые из видео, которые я хочу иметь возможность перетаскивать между видео isLast
и isFirst
(их много), поэтому для тех, кому нужны эти элементы, можно снова отсортировать, поэтому я использую:
start: function(event, ui) {
if (// my test //)
{
$('#timeline').sortable('option', 'items', '.videoBox');
}
},
Это позволяет мне перетаскивать предметы, которые ранее не сортировались - отлично!
Теперь я хочу вернуть сортируемую исходную настройку после завершения перетаскивания, поэтому я поместил это в перетаскиваемый init:
stop: function() {
if (// my test //)
{
$('#timeline').sortable('option', 'items', '.videoBox:not(.isFirst, .isLast)');
$('#timeline').sortable('refresh');
$('#timeline .videoBox.isLast, #timeline .videoBox.isFirst').draggable('destroy');
}
},
Это прекрасно работает, если перетаскиваемый объект не попадает в #timeline. Однако, если он сброшен в #timeline
, то этот обратный вызов, похоже, не вызывается (?). Я добавил точно такой же код в сортируемые события: stop
, update
и deactivate
, и хотя я вижу, что эти обратные вызовы запускаются, видео isFirst
и isLast
по-прежнему можно перетаскивать.
Однако они не сортируются - поэтому я думаю, что проблема заключается в бите .draggable('destroy')
... Есть идеи / предложения?
Ура,
Том