は、ここでは、コンテキストメニュープラグインをカスタマイズすることができる方法です助けてください:
$("#divtree").jstree({
"plugins": ["themes", "html_data", "ui", "crrm", "contextmenu"],
"contextmenu": {
"items": function ($node) {
return {
"Create": {
"label": "Create a new employee",
"action": function (obj) {
this.create(obj);
}
},
"Rename": {
"label": "Rename an employee",
"action": function (obj) {
this.rename(obj);
}
},
"Delete": {
"label": "Delete an employee",
"action": function (obj) {
this.remove(obj);
}
}
};
}
}
});
さてさて、この例では、私が唯一のクリックハンドラ内の基底関数を呼び出しています:this.create(obj);
、this.rename(obj);
とthis.remove(obj);
obj
をクリックされたノードになります。
だから今は、新しいアイテムが追加されたときにサーバーにAJAX要求を送信する場合jsTreeドキュメントのdemo page
に示すように、たとえばあなたがcreate.jstree
イベントをサブスクライブすることができます:
<script type="text/javascript">
$("#divtree").jstree({
"plugins": ["themes", "html_data", "ui", "crrm", "contextmenu"],
"contextmenu": {
"items": function ($node) {
return {
"Create": {
"label": "Create a new employee",
"action": function (obj) {
this.create(obj);
}
},
"Rename": {
"label": "Rename an employee",
"action": function (obj) {
this.rename(obj);
}
},
"Delete": {
"label": "Delete an employee",
"action": function (obj) {
this.remove(obj);
}
}
};
}
}
})
.bind("create.jstree", function (e, data) {
$.ajax({
url: "@Url.Action("create", "employees")",
type: 'POST',
data: {
"name" : data.rslt.name
},
success: function (result) {
}
});
});
</script>
点検create.jstree
イベントコールバックに渡される引数は、e
とdata
です。それらには、AJAXリクエストとともに送信するために使用できる新しく作成されたノードに関する多くの有益な情報が含まれています。
この例では、remove.jstree
イベントとrename.jstree
イベントを使用して拡張を続けることができます。だからあなたがそれを見るとき、必要なのはドキュメンテーションを読むことだけでした。たとえば、私は人生でjsTreeを使ったことがありませんでしたが、5分でドキュメントの例を見つけ出し、あなたのために素早くスパイクを作りました。次回は、使用しているプラグインやフレームワークに関するプログラミング関連の質問がありますので、最初にドキュメントを読むことにもっと努力してください。
はい、可能です。 [何を試しましたか](http://mattgemmell.com/2008/12/08/what-have-you-tried/)あなたの質問は何ですか? –
、私は私の質問を説明... –