2013-04-15 3 views
0

Для тех, кто может потратить часы, пытаясь понять, почему они не получают одинаковое поведение от выбранного обратного вызова, вызвано ли оно событием select или методом выбора.Kendo TreeView select function and event misbehavior

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

select: function(e){ 
    var item = e.node; 
    appui.f.post("admin/object_editor/obj/" + 
    (typeof(item.class) !== "undefined" ? "object" : "field") + 
    "/" + item.id + "/" + item.uid, {partial:1}, $("#object_cfg_container")); 
} 

ответ

0

Функция запускается, но возвращает ошибку из первой строки при использовании метода select.

На самом деле происходит то, что событие отправляется как аргумент функции, в котором вы можете найти свойство node, которое является вновь выбранным объектом.

Однако, когда вы используете метод select, аргумент события больше не имеет свойства node.

Возможно, вы выяснили, что метод select(), используемый без аргументов, возвращает выбранный элемент.

Но новая проблема появляется, эта функция будет возвращать старый выбранный элемент при запуске во время мероприятия, в то время как он вернется вновь выбранный пункт, если он запущен как метод ...

Мое решение:

select: function(e){ 
    var item = e.node ? e.node : this.select(), 
     data = this.dataItem(item); 
    .... 
}