我有一个使用Kendo UI树视图的树状结构。每个节点都显示为超链接,点击每个节点时,将打开一个新的kendotabstrip。我的问题是,如果我选择一个节点,结果在新选项卡中显示正常,但如果我关闭新打开的选项卡然后选择相同的节点,则由于已经选择了节点,因此不会打开新选项卡。如果我必须选择相同的节点,那么我必须访问另一个节点,然后返回节点。
使用以下代码段
打开新标签后,我尝试取消选择所选项目var treeview = $(#grpTree).data(" KendoTreeView");
var selNode = treeview.select();
selNode.find(" span.k状态选择&#34)。removeClass(" K状态选择&#34)
但节点未被选中。有没有其他办法可以做到这一点,或者我错过了什么。请指导我。
提前致谢。
答案 0 :(得分:7)
我知道这篇文章有点陈旧,但随着Telerik不断升级其组件,我想我会把它放在这里,以便人们可以意识到这一变化向前发展。
您可以使用以下语法取消选择所有选定的节点:
var treeView = $("#treeView").data("kendoTreeView");
treeView.select($());
答案 1 :(得分:1)
是的,这是设计的。如果要附加将每次触发的单击处理程序(无论是否已选择该节点)。您可以附加如下的委托事件:
$('#treeviewName').on('click','.k-item',function(e){
var clickedNode = $(this);
var treeViewClientObject = $(e.delegateTarget).data().kendoTreeView;
})
答案 2 :(得分:0)
这总是调用更改函数,因此这可以是另一种解决方案:
$("#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');
答案 3 :(得分:0)
我的代码:
var treeview=$(#grpTree).data("KendoTreeView");
treeview.select(null);