3

チェックされたノードとチェックされていないノードを、jstree から 2 つの別々の配列で取得したいと考えています。

私は見.get_checked.get_unchecked機能しましたが、現在チェックされているノードとチェックされていないノードをすべて返します。(つまり、ノードがチェックされておらず、チェックを外していない場合でも、 を使用してノードを取得し.get_uncheckedます。これが起こらないようにしたい)。私は、API にも大きな変更を加える準備ができています。道順は?

チェックボックスの変更イベントを取得できますか。私も試しchange_stateましたが、それはクリックされた 1 つのノードに対してのみ機能します。

4

2 に答える 2

2

私が理解しているように、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'));
    });
});​
于 2012-10-18T02:10:45.320 に答える