Она должна быть простым вопросомКендо перетаскиваемое - приостановить перетаскивание временно из обработчика события перетаскивания
Итак, у меня есть очень простой kendoDraggable:
grid.kendoDraggable({
. . .
axis: "y",
hint: getHint,
drag: drag,
dragend: dragend,
dragstart: dragstart,
});
Мне нужно проверить мое состояние в «перетащить» обработчик и предотвратить перетаскивание, если условие истинно (поэтому невозможно выйти за пределы некоторой динамически рассчитанной границы). Но пользователь должен иметь возможность по-прежнему перетащить его в другое направление, если он не выпустил мышь, даже если он попытался перетащить за эту границу.
Если я пытаюсь остановить распространение события, он не работает:
function drag(e) {
if (e.clientY < someDynamicValue) {
e.preventDefault();
e.stopImmediatePropagation();
e.stopPropagation();
return false;
}
Но, если я просто бросить любое исключение, он работает так же, как я хочу его. Он не перетаскивается, если условие истинно, но перетаскивается, если условие ложно:
function drag(e) {
if (e.clientY < someDynamicValue) {
throw "any exception";
}
Что происходит? Как действительно прекратить перетаскивание, если условие верно?
Спасибо!
P.S. Я знаю о «контейнере» свойства kendoDraggable, который ограничивает объект draggable, но он плохо работает со свитком.
Это довольно хорошая идея. Раньше я использовал контейнер для ограничения движения перетаскивания, и он работал плохо с NiceScroll. Кажется, я могу попытаться разрешить перетаскивание только над ячейками с определенным классом. Мне нужно попробовать, спасибо за это предложение! – Aremyst