0

json のファイルから jsTree の contextmenu をロードする必要があります。コンテキスト メニューは、このファイル ("test.json") に保存されます。

{
    "item1" : {
        "label" : "voce1"
    },
    "item2" : {
        "label" : "voce2"
    }
}

コンテキストメニューをロードするコードは次のとおりです。

$(function () {

    $("#tree").jstree({ 
        "plugins" : [ "themes", "json_data", "ui", "contextmenu" ],

        // other code ....

        "contextmenu" : {
        "items" : customMenu
    }

    })
});

function customMenu(node) {

    $.getJSON( "test.json", function(json) {
        return json;
    });
}

このように、コンテキストメニューは表示されません。手伝って頂けますか?

4

1 に答える 1

2

jstree プラグインがどのように機能するかはわかりませんが、最初に Ajax リクエストを作成する JSON データをロードし、終了したら jstree を初期化するという別のアプローチを試す必要があるかもしれません。

$(function () {
 $.getJSON( "test.json", function(json) {
  $("#tree").jstree({ 
    "plugins" : [ "themes", "json_data", "ui", "contextmenu" ],
    "contextmenu" : {
      "items" : json
    }
  });
 });
});

これは、Ajax 呼び出しが非同期であるため、関数が のオプションにcustomMenu()何も返さないためです。"items""contextmenu"

于 2012-04-16T16:10:02.160 に答える