2011-07-15 77 views
1

我使用最新的jstree提交从github复选框插件作为我的表单的一部分。我正在使用带有“real_checkboxes”属性的树。检测jstree中的复选框更改

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

我可以理解并听取复选框是勾选还是未勾选?

感谢,

UPDATE:

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

但是它是不是很干净,它的作用:通过做一些尝试,我能够在乘坐检查的默认功能,并取消方法后覆盖整个方法。

有:

一)一个更清洁的方式做到这一点? b)只是做一个回调函数而不是取代整个该死的东西?再次

感谢,

+0

我可以使用check_node和uncheck_node,但我不知道如何扩展这些功能用我自己的行为,同时保持实际父的完整性。可能有人可以告诉我如何扩展这些功能? – Sammaye

回答

2

@Noctyrn

是的,我这样做,最初但后来我通过文档看更仔细地发现这一点:

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

但是你的功能母鹿同样:)。但是因为我对jsTree文档是正确的,所以Ima将我的答案标记为正确的答案。此外,该功能允许同一页上的不同树具有不同的绑定,所以它总体上更好:)。

感谢您的帮助:),

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"); 
}