3

剣道UIツリービューにハックがあるので、ユーザーがルートノードをクリックすると、他のブランチノードと同様に選択メソッドがトリガーされます。

現在、この動作に対して見つけることができるオプションはなく、select メソッドはブランチに対してのみトリガーされます。

    var areaDropDownTreeView = $(tvElement).kendoExtDropDownTreeView({
        treeview: {
            template: kendo.template($(tvTemplate).html()),
            dataSource: dataSource
        }
    }).data("kendoExtDropDownTreeView");

    var $dropdownRootElem = $(areaDropDownTreeView.dropDownList().element).closest("span.k-dropdown");
    var $treeviewRootElem = $(areaDropDownTreeView.treeview().element).closest("div.k-treeview");

    // Unbind default select event.
    areaDropDownTreeView.treeview().unbind("select");
    // Bind new select event.
    areaDropDownTreeView.treeview().bind("select", function (e) {
       // want to do something here for every node including the root, but the root is not triggering select, only the branches are
    });
4

1 に答える 1

2

TreeView を正しく構築していることを確認することから始めます。

$("#myTreeView").kendoTreeView({ ...settings go here... } );

ツリーのすべてのノードで動作する選択の例を次に示します。

http://jsbin.com/edamuj/1260/edit?html,出力

OnSelect、ルート ノードを含むツリー内の任意のノードに対して起動します。それはあなたが拘束しているビザロのやり方に関係していると思います。アクションを制御したい場合 (常に onSelect に何かをさせたいとは限らない場合もあります)、選択イベント関数自体でこれらの決定を管理すると役立つ場合があります。これが推奨されるアプローチです。剣道のドキュメントにある推奨されるアプローチ リストに従わない場合は、予期しない結果が予想されます。

代わりに、ツリービュー宣言内でイベント バインディングを設定します (これは簡単な例です)。

$("#treeview").kendoTreeView({
                    select: onSelect,
                });
            });

そして、次のように通常どおりイベントを処理します。

       $(document).ready(function() {
                function onSelect(e) {
                    alert("selection event triggered");
                }
        }
于 2013-09-13T17:02:08.880 に答える