1
我想顯示一個fancybox當用戶點擊創建按鈕讓他們填寫表單。這用於捕獲附加數據並將其與jsTree中新創建的節點相關聯。我需要獲取新創建的節點的ID,並在fancybox調用中將其作爲GET參數傳遞。到目前爲止,我似乎無法弄清楚如何獲得ID。如何從data.args獲取新創建的節點的ID?
這是我到目前爲止有:
$("#demo").jstree({
// List of active plugins
"plugins" : ["themes", "json_data", "ui", "crrm", "cookies", "dnd", "search", "types", "hotkeys", "contextmenu", "unique"],
.bind("create.jstree", function (e, data) {
$.post(
"server.php",
{
"operation" : "create_node",
"id" : data.rslt.parent.attr("id").replace("node_",""),
"position" : data.rslt.position,
"title" : data.rslt.name,
"type" : data.rslt.obj.attr("rel")
},
function (r) {
if(r.status) {
$(data.rslt.obj).attr("id", "node_" + r.id);
}else{
$.jstree.rollback(data.rlbk);
}
}
);
})
$("#demo").bind("before.jstree", function (e, data) {
if(data.func === "create") {
var id = data.args[0].attr("id").replace("node_","");
showFancybox("edit_task.php?action=create&parent_id="+id);
}
})
// Code for the menu buttons
$(function() {
$("#mmenu input").click(function() {
switch(this.id) {
case "add_default":
case "add_folder":
$("#demo").jstree("create", null, "last", { "attr" : { "rel" : this.id.toString().replace("add_", "") } });
break;
case "search":
$("#demo").jstree("search", document.getElementById("search_text").value);
break;
case "text": break;
default:
$("#demo").jstree(this.id);
break;
}
});
});
,我現在已經找到了父ID在創建新節點之前的代碼。我嘗試等待幾秒鐘,然後試圖從數據庫中讀取最新的條目,但這不能非常可靠地工作,並且比需要的慢。一旦創建並添加到數據庫後,如何從jsTree獲取新節點的ID?
都能跟得上。未定義。 – compcentral
data.args [0]返回什麼? –
我編輯了這個問題給你看。 – compcentral