3

kendo ui treeview 中是否存在 hack,因此当用户单击根节点时,它将触发 select 方法,与其他分支节点一样。

目前,我找不到针对此行为的选项,并且 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 做某事),它可能有助于管理这些决策 select 事件函数本身。这是推荐的方法。如果您不遵循 kendo 文档中的推荐方法列表 - 预计会出现意外结果。

相反,在树视图声明中设置事件绑定(这是一个简化的示例):

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

然后像这样正常处理事件:

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