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

У меня есть древовидная структура, использующая древовидное представление Kendo UI. Каждый узел отображается в виде гиперссылки, и при нажатии на каждый из них открывается новый kendotabstrip. Моя проблема заключается в том, что если я выбираю один узел, результаты отображаются в новой вкладке, но если я закрою вновь открытую вкладку, а затем выберу тот же узел, то новая вкладка не откроется, поскольку узел уже выбран. Если мне нужно выбрать тот же узел, я должен получить доступ к другому узлу, а затем вернуться к узлу.

Я попытался отменить выбор выбранного элемента после открытия новой вкладки, используя следующий фрагмент:

var treeview=$(#grpTree).data("KendoTreeView");

var selNode=treeview.select(); 

selNode.find("span.k-state-selected").removeClass("k-state-selected")

но узел не отменяется. Есть ли другой способ сделать это или я что-то пропустил?


person mick_000    schedule 11.12.2012    source источник


Ответы (4)


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

Вы можете отменить выбор всех выбранных узлов с помощью следующего синтаксиса:

    var treeView = $("#treeView").data("kendoTreeView");
    treeView.select($());

Источник: Документация Kendo UI Treeview для Select

person Jark Monster    schedule 26.04.2013
comment
Здесь важно отметить, что вы говорите treeview выбрать пустой объект $() jQuery. - person darronz; 21.05.2014

Да это по дизайну. Если вы хотите прикрепить обработчик кликов, который будет срабатывать каждый раз (независимо от того, выбран ли узел уже). Вы можете прикрепить событие делегата следующим образом:

$('#treeviewName').on('click','.k-item',function(e){
      var clickedNode = $(this);
      var treeViewClientObject = $(e.delegateTarget).data().kendoTreeView;
})
person Petur Subev    schedule 11.12.2012

Мой код:

var treeview=$(#grpTree).data("KendoTreeView");

treeview.select(null);
person nosaxw    schedule 17.06.2016

Это всегда вызывает функцию изменения, поэтому это может быть другим решением:

    $("#favorite_tree").kendoTreeView({
change: function () {
    if (this.dataItem(this.select())) {
        var treeView = $("#calendar_tree").data("kendoTreeView");
        treeView.select($());
    }
}
}).data('kendoTreeView');

$("#calendar_tree").kendoTreeView({
change: function () {
    if (this.dataItem(this.select())) {
        var treeView = $("#favorite_tree").data("kendoTreeView");
        treeView.select($());
    }
 }
}).data('kendoTreeView');    
person Selim Reza    schedule 15.01.2015