jquery ui sortable - удержание или отмена только для некоторых элементов в sortable, только для некоторых пунктов назначения - PullRequest
0 голосов
/ 10 марта 2011

Вот суть: мне нужно отключить / содержать перетаскивание между двумя сортируемыми объектами только для определенных элементов, в то же время позволяя перетаскивать те же самые элементы в пределах их сортируемых.Я не понимаю, как я могу сделать это с cancel или containment, потому что они применяются ко всей сортировке или ко всем элементам.Можно ли отменить сортировку только между сортируемыми?или возможно содержать только определенные элементы?

Вот фоновая ситуация: у меня есть две сортируемые таблицы, которые прекрасно соединяются с использованием опции connectWith.Они представляют два столбца бюллетеня, и вы можете добавлять элементы в каждый столбец и перетаскивать их между ними.Однако эти элементы имеют типы, и существует ограничение на количество элементов каждого типа, которое вы можете иметь в каждом столбце.Таким образом, проблема в том, что я хочу отключить перетаскивание элементов из одного столбца в другой, если для другого столбца этот тип элемента уже исчерпан.У меня нет проблем с определением, когда тип элемента максимально увеличен в столбце, или с указанием, какие элементы следует или не следует перетаскивать.Это просто вопрос запуска нужной функциональности в jquery ui.

1 Ответ

3 голосов
/ 10 марта 2011
$(function() {
    $( "#sortable1, #sortable2" ).sortable({
      connectWith: ".connectedSortable",
      receive: function(event, ui) { 
        if ( $(this).find('li').size() == 7 ) {
         $(ui.sender).sortable('cancel');
        }
      }
    });
  });

если #sortable достигает 7 предметов, он прекращает принимать другие предметы

...