Всем привет.
Использую 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 получаю ошибки?
Может есть другой правильный способ реализовать задуманное?
Спасибо.