检测jstree中的复选框更改

时间:2011-07-15 07:28:20

标签: javascript jstree

我使用github的最新jstree提交和复选框插件作为我的表单的一部分。我正在使用具有“real_checkboxes”属性的树。

一切都很好,除了复选框插件实际上没有将任何已更改的属性属性添加到隐藏字段,也似乎没有外部函数可以让我挂钩来创建自定义功能。

当勾选或未勾选复选框时,我是否可以理解和聆听?

谢谢,

更新:在做了一些实验后,我能够超越检查的默认功能,并使用以下方法取消选中方法:

$.jstree._instance.prototype.check_node = function(node){ alert("here"); }

然而,它不是很干净,它确实覆盖了整个方法。

有吗:

a)更干净的方式吗? b)只是对函数进行回调而不是替换整个该死的东西?

再次感谢,

2 个答案:

答案 0 :(得分:2)

@Noctyrn

是的,我最初是这样做的,但后来我仔细查看了文档,发现了这个:

$(".js_tree_'.$this->attribute.' div").bind("check_node.jstree", function(){});

但是,你的功能是一样的:)。但是因为我的jsTree docs是正确的,所以我的回答是正确的。此函数允许同一页面上的不同树具有不同的绑定,因此总体上更好:)。

感谢您的帮助:),

答案 1 :(得分:1)

这实际上不那么干净,但至少它完成了工作:

var check_node_func = $.jstree._instance.prototype.check_node;
$.jstree._instance.prototype.check_node = function(node) {
    check_node_func.apply(this, arguments);
    alert("here");
}