JQuery UI перетаскиваемый / сортируемый / сбрасываемый отключить падение, когда достигается предел сбрасывания - PullRequest
1 голос
/ 22 августа 2010

JS Bin demo

Задача:

Я создаю планировщик событий с помощью пользовательского интерфейса jQuery.События имеют определенную продолжительность (в минутах), и их можно перетаскивать на разные дни, каждый из которых имеет свою максимальную продолжительность (в минутах).В этом примере максимальная продолжительность каждого дня составляет 480 минут, и «события» должны иметь значение не более 480 минут.

Проблема:

Если «событие» приведет к тому, что «день» превысит его максимальную длительность (на основе объединенного времени элементов, уже упавших на него), этот «день» следует отключить (для этого конкретного события не допускается удаление).

Как вы можете видеть из демоверсии 1018 *, я могу определить суммарное время событий для каждого дня («минуты доступны» обновляется при остановке перетаскивания), но я не знаю, как это сделать.отключите опускание в день, если перетаскиваемое событие приведет к тому, что «доступные минуты» станут отрицательными.

Ответы [ 2 ]

2 голосов
/ 09 сентября 2010
$( "#daybox" /*or selector for days elements*/ ).bind( "sortreceive", function(event, ui) {

   if(/*percent*/ >= 100)

      $(ui.sender).sortable('cancel');
});

затем отброшенный элемент возвращается в группу.

2 голосов
/ 22 августа 2010

Здесь проще всего запустить функцию при запуске, чтобы проверить, полностью ли забронирована какая-либо комната. Я пересмотрел демо, которое вы предоставили здесь: исправил демо

Конечно, он может использовать некоторые уточнения, но, по сути, он проверяет длину события, которое вы перетаскиваете, и скрывает сортируемый ul любых комнат с недостаточным временем. Я спрятал комнаты, потому что отключение их вступит в силу слишком поздно. Я также добавил интервал в html перед каждым номером ul, который будет отображаться при нехватке времени. Вероятно, лучше всего добавить это с помощью js, но не так много времени для уточнения.

Надеюсь, это поможет!

...