3

「チェックボックス」プラグインで jsTree jQuery プラグインを使用し、ツリーの各レベルを遅延ロードするために非同期 http 要求を使用しています。最初のレベルの後にツリーに特定のノードを事前に選択させることができないことを除いて、すべてうまく機能します。「selected」属性を使用して、事前選択する ID の配列を提供しています。ツリーのトップ レベルの ID は正しく事前に選択されています。ただし、ツリーの下位レベルの ID は、レベルのロード時に選択されません。何か不足していますか?

コンストラクターのコードは次のとおりです。

    var myArrayOfIDs = new Array();
    myArrayOfIDs[0] = '123';  //etc...

    $(sDivID).tree(
        {
            data : {
                async : true,
                opts : {url : sURL}
            },
            plugins:{ 
                "checkbox" : {three_state : false}
            },
            selected : myArrayOfIDs,
            ui:{
                theme_name : "checkbox",
                dots : false,
                animation : 400
            },
            callback : {
                beforedata : function(NODE, TREE_OBJ) { return { id : $(NODE).attr("id") || 0, rand : Math.random().toString() } }
            }
        }
    )
4

3 に答える 3

6
$(".jstree").jstree({
    "plugins" : [ "themes", "html_data", "checkbox", "ui" ],
    "checkbox": {
        "real_checkboxes": true,
        "real_checkboxes_names": function (n) {
            return [n[0].id, 1];
        },
        "two_state": true
    }
}).bind("loaded.jstree", function (event, data) {
    $('li[selected=true]').each(function () {
        $(this).removeClass('jstree-unchecked').addClass('jstree-checked');
    });
});

これをjstreeの最新バージョンに使用しています。

于 2011-10-13T12:47:28.950 に答える
3

うーん、あなたのコードは私にはうまく見えます。

サーバー、つまりsURLでどのアイテムを選択するかを教えてほしいので、ソリューションでは少し異なるアプローチを取りました。次に、jsTreeのonloadコールバックでそれらを選択します。

更新:ここでjsTreeブログ投稿を最新バージョンのjsTreeに更新しました

-マット

于 2010-05-19T04:43:27.187 に答える