@Sergi0Limit

Kendo gantt. Как отменить Drop при перетаскивании элементов дерева по условию?

Всем привет.
Использую gantt виджет от KendoUI. Есть там такая функция - перетаскивание нод. Пытаюсь отменить событие drop по какому-то условию. Вот часть кода:

var projectSchedule = $("#project-schedule").kendoGantt({

///
///
///


}).data("kendoGantt");

///
///
///

Для обработки событий Drag&Drop использую следующий код:

projectSchedule.list._tableDropArea.first("drop", function (e) {
    console.log("drop");
    if (some condition){
       sendEsc();
       return;
 }

});

function sendEsc(){
var esc = $.Event("keyup", { keyCode: 27 });
$("body").trigger(esc);
}


При этом Drop отменяется, но при этом в консоле браузер вылетает ошибка. Дальнейшей работе она не мешает, но все же...

Uncaught TypeError: Cannot read property 'closest' of nulll.

GanttList.c.extend._modelFromElement @ kendo.all.min.js:50
l.GanttList.c.extend._draggable.options.editable._tableDropArea.content.kendoDropTargetArea.drop @ kendo.all.min.js:50
i.extend.trigger @ kendo.all.min.js:9
_.extend._trigger @ kendo.all.min.js:18
_.extend._drop @ kendo.all.min.js:18
(anonymous function) @ kendo.all.min.js:18
_.extend._withDropTarget @ kendo.all.min.js:18
_.extend._end @ kendo.all.min.js:18
jQuery.extend.proxy.proxy @ jquery.js:512i
.extend.trigger @ kendo.all.min.js:9l
.extend.notify @ kendo.all.min.js:18
s.extend._trigger @ kendo.all.min.js:18
s.extend.end @ kendo.all.min.js:18
l.extend._eachTouch @ kendo.all.min.js:18
l.extend._end @ kendo.all.min.js:18
mt.on.arguments.length.t.(anonymous function) @ kendo.all.min.js:10
jQuery.event.dispatch @ jquery.js:4430
jQuery.event.add.elemData.handle @ jquery.js:4116


И тут вопрос, почему при нажатии на Esc все отрабатывает правильно - нода не "бросается" и ошибок в консоли нет, а в моем случае, когда я программно "нажимаю" Esc получаю ошибки?

Может есть другой правильный способ реализовать задуманное?

Спасибо.
  • Вопрос задан
  • 307 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы