私が理解しているように、jstreeのチェックボックスプラグインを書き換えずにチェックボックスの単一イベントを処理することはほとんど不可能です.check/uncheckイベントごとに、クリックされたフォルダのすべての親と子を再描画します.
ここに簡単なデモがあります:
すべてが私のために働き、
HTML
<div id="demo1" class="demo">
<ul>
<li id="phtml_1">
<a href="#">Root node 1</a>
<ul>
<li id="phtml_2" class="jstree-checked">
<a href="#">Child node 1</a>
</li>
<li id="phtml_3">
<a href="#">A Child node 2</a>
</li>
</ul>
</li>
<li id="phtml_4">
<a href="#">Root node 2</a>
<ul>
<li id="phtml_2" >
<a href="#">Child node 1</a>
</li>
<li id="phtml_3">
<a href="#">A Child node 2</a>
</li>
</ul>
</li>
</ul>
</div>
JS
$(function() {
var tree = $("#demo1").jstree({
"plugins": ["themes", "html_data", "checkbox", "sort", "ui"]
});
tree.bind("open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree", function(e) {
console.log("Event", e);
console.log('Cheked:', tree.jstree('get_checked'));
console.log('Uncheked:', tree.jstree('get_unchecked'));
});
});