我有一个2级的剑道UI树视图与父和子节点。 当我检查父节点,所有子节点(包括家长)会自动检查。
现在, 我想与当前树选择状态发送事件 。 问题是,当我尝试,因为它触发在每个复选框选择单独 (1个父节点+ 3个节点= 4次改变的事件)来做到这一点在dataSource.change方法。 这就是代码的样子:
treeView.data("kendoTreeView").dataSource.bind("change", function() {
alert('event fired!');
});
我创建了一个工作示例这里
是否有其他事件附加到只生一个事件触发的所有复选框被更新后? 或者,也许有一种方法将所有这些“变化”事件和火灾只有一个呢?
我这个解决方案结束:
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