1

ノードの作成後に Java スクリプト プロンプトの値を使用してノード タイトルの名前を変更することは可能ですか?

![ユーザーが右クリックしてツリー上に新しいノードを作成][1] 新しいノードを作成した後、ユーザーは自動的にポップアップ メニューに移動し、ノード名の入力を求められます。

ユーザーは新しいノードを作成します: http://i.stack.imgur.com/X6hIl.png

ユーザーは新しいノード名を入力するように求められます:http://i.stack.imgur.com/WJmJw.png

ノード名は、ユーザーからの値から自動的に名前が変更されます

これを行うポイントは、ポップアップ画面が実際にデータベースからクエリ操作を実行し、特定の文字列をノード タイトルとして送り返すためです。

これらは、ツリー コンテキスト メニューからポップアップを取得するためのスクリプトです。

    $(function () {
        $("#demo1").jstree({ 
    "plugins" : [ "themes", "html_data", "crrm", "contextmenu" ]
        })
        .bind( "rename_node.jstree", function (e, data) {    
    var data = prompt("enter node name ");
        });
    });
4

1 に答える 1

2

rename_node イベント ハンドラーにバインドする必要はありません。contextmenu の "rename" オブジェクトを書き直して、独自のカスタム関数を実行できます。

$(function () {
 $("#demo1").jstree({   
    "contextmenu" : {
        items : { // Could be a function that should return an object like this one
            "create" : false,
            "rename" : {
                            "_class"            : "myClass",
                            "separator_before"  : false,
                            "separator_after"   : false,
                            "label"             : "Rename Node",
                            "action"            : function (obj) {
                                                    //Do some action here or pass the object to another function
                                                    //ex: myFunc(obj);
                                                    $(obj).find("a:first").text("My new node label.");
                                                }
                        },
            "remove" : false,
            "ccp" : false
        }
    },
    "plugins" : [ "themes", "html_data", "crrm", "contextmenu" ]
 });
});
于 2012-04-11T22:45:48.667 に答える