剑道树视图复选框 - 父节点检查 - 在每一个复选框更改事件(kendo treeview chec

2019-10-18 00:01发布

我有一个2级的剑道UI树视图与父和子节点。 当我检查父节点,所有子节点(包括家长)会自动检查。

现在, 我想与当前树选择状态发送事件 。 问题是,当我尝试,因为它触发在每个复选框选择单独 (1个父节点+ 3个节点= 4次改变的事件)来做到这一点在dataSource.change方法。 这就是代码的样子:

treeView.data("kendoTreeView").dataSource.bind("change", function() {
    alert('event fired!');
});

我创建了一个工作示例这里

是否有其他事件附加到只生一个事件触发的所有复选框被更新后? 或者,也许有一种方法将所有这些“变化”事件和火灾只有一个呢?

Answer 1:

我这个解决方案结束:

tree.data("kendoTreeView").dataSource.bind("change", function() {
        treeView = tree.data("kendoTreeView");
        checkedNodes = [];
    checkedNodeIds(treeView.dataSource.view(), checkedNodes);
    if (!timeoutSet) {
        setTimeout(fireCheckboxChangeOnce, 50);//fires only one event when parent checkbox checks all the children
        timeoutSet = true;
    }
});

只有第一个事件来创建一个函数调用延迟(使用的setTimeout())。 所有剩下的“变”事件只修改checkedNodes参数。

fireCheckboxChangeOnce函数同时清除timeoutSet标志。



文章来源: kendo treeview checkbox - parent node check - change event on every checkbox