4

剣道のUIツリービューを使った木のような構造になっています。各ノードはハイパーリンクとして表示され、各ノードをクリックすると、新しいノードがkendotabstrip開きます。私の問題は、1つのノードを選択すると、結果が新しいタブに正常に表示されることですが、新しく開いたタブを閉じてから同じノードを選択すると、ノードがすでに選択されているため、新しいタブは開かれません。同じノードを選択する必要がある場合は、別のノードにアクセスしてからノードに戻る必要があります。

次のスニペットを使用して新しいタブを開いたら、選択したアイテムの選択を解除しようとしました。

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

var selNode=treeview.select(); 

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

しかし、ノードは選択解除されていません。それを行う他の方法はありますか、または私は何かを逃しましたか?

4

4 に答える 4

8

この投稿が少し古いことは承知していますが、Telerik はそのコンポーネントを継続的にアップグレードしているため、この変更が前進していることを人々が認識できるように、ここに投稿することにしました。

次の構文を使用して、選択したすべてのノードを選択解除できます。

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

出典: Select の Kendo UI Treeview ドキ​​ュメント

于 2013-04-26T18:41:31.883 に答える
1

私のコード:

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

treeview.select(null);
于 2016-06-17T04:27:13.623 に答える
1

はい、これは仕様です。毎回トリガーされるクリック ハンドラーをアタッチする場合 (ノードが既に選択されているかどうかに関係なく)。次のようなデリゲート イベントを添付できます。

$('#treeviewName').on('click','.k-item',function(e){
      var clickedNode = $(this);
      var treeViewClientObject = $(e.delegateTarget).data().kendoTreeView;
})
于 2012-12-11T21:48:58.490 に答える
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');    
于 2015-01-15T12:36:04.707 に答える