2012-12-11 120 views
3

我有一個樹狀結構使用Kendo UI樹視圖。每個節點都顯示爲一個超鏈接,點擊每個節點後,將打開一個新的kendotabstrip。我的問題是,如果我選擇一個節點,結果在新選項卡中顯示正常,但如果我關閉新打開的選項卡,然後選擇相同的節點,則不會打開新選項卡,因爲節點已被選中。如果我必須選擇相同的節點,那麼我必須訪問另一個節點,然後再回到節點。無法取消選擇KendoUI樹視圖中選定的節點

我試圖取消選擇的項目,一旦新的標籤正在使用下面的代碼片斷

VAR樹狀= $(#grpTree)。數據(「KendoTreeView」)開通;

var selNode = treeview.select();

selNode.find( 「span.k狀態選擇」)removeClass。( 「K-狀態選擇」)

但不獲取DE選擇的節點。有沒有其他的方式去做,或者我錯過了什麼。請指導我。

在此先感謝。

回答

1

是的,這是設計。如果你想附加一個點擊處理程序,每次都會觸發(無論節點是否已被選中)。您可以將類似下面的委託事件:

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

我知道這個帖子是有點過時,但Telerik的不斷升級其組成部分,我想我應該把這個位置讓人們可以知道的這種變化向前發展。

您可以取消以下語法所有選擇的節點:

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

來源:Kendo UI Treeview Documentation for Select

+0

這裏要注意的關鍵是你告訴'treeview'選擇一個空的'$()'jQuery對象 – darronz

1

這就要求改變功能始終,所以這可能是另一種解決方案:

$("#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');  
0

我的代碼:

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

treeview.select(null);