Javascript树节点代码
ı想用这个吗 ı可以创建、删除和编辑节点,但我的问题是, 如何创建节点的值或id ı如何获取已删除节点的值或id 因为我将插入数据库。 这里是javascript代码 对于createprocess,我发现这段代码可能属于下面的createprocessJavascript树节点代码,javascript,Javascript,ı想用这个吗 ı可以创建、删除和编辑节点,但我的问题是, 如何创建节点的值或id ı如何获取已删除节点的值或id 因为我将插入数据库。 这里是javascript代码 对于createprocess,我发现这段代码可能属于下面的createprocess // Basic operations: create create_node: function (obj, position, js, callback, is_loaded) {
// Basic operations: create
create_node: function (obj, position, js, callback, is_loaded) {
obj = this._get_node(obj);
position = typeof position === "undefined" ? "last" : position;
var d = $("<li />"),
s = this._get_settings().core,
tmp;
if (obj !== -1 && !obj.length) { return false; }
if (!is_loaded && !this._is_loaded(obj)) { this.load_node(obj, function () { this.create_node(obj, position, js, callback, true); }); return false; }
this.__rollback();
if (typeof js === "string") { js = { "data": js }; }
if (!js) { js = {}; }
if (js.attr) { d.attr(js.attr); }
if (js.metadata) { d.data(js.metadata); }
if (js.state) { d.addClass("jstree-" + js.state); }
if (!js.data) { js.data = this._get_string("new_node"); }
if (!$.isArray(js.data)) { tmp = js.data; js.data = []; js.data.push(tmp); }
$.each(js.data, function (i, m) {
tmp = $("<a />");
if ($.isFunction(m)) { m = m.call(this, js); }
if (typeof m == "string") { tmp.attr('href', '#')[s.html_titles ? "html" : "text"](m); }
else {
if (!m.attr) { m.attr = {}; }
if (!m.attr.href) { m.attr.href = '#'; }
tmp.attr(m.attr)[s.html_titles ? "html" : "text"](m.title);
if (m.language) { tmp.addClass(m.language); }
}
tmp.prepend("<ins class='jstree-icon'> </ins>");
if (!m.icon && js.icon) { m.icon = js.icon; }
if (m.icon) {
if (m.icon.indexOf("/") === -1) { tmp.children("ins").addClass(m.icon); }
else { tmp.children("ins").css("background", "url('" + m.icon + "') center center no-repeat"); }
}
d.append(tmp);
});
d.prepend("<ins class='jstree-icon'> </ins>");
if (obj === -1) {
obj = this.get_container();
if (position === "before") { position = "first"; }
if (position === "after") { position = "last"; }
}
switch (position) {
case "before": obj.before(d); tmp = this._get_parent(obj); break;
case "after": obj.after(d); tmp = this._get_parent(obj); break;
case "inside":
case "first":
if (!obj.children("ul").length) { obj.append("<ul />"); }
obj.children("ul").prepend(d);
tmp = obj;
break;
case "last":
if (!obj.children("ul").length) { obj.append("<ul />"); }
obj.children("ul").append(d);
tmp = obj;
break;
default:
if (!obj.children("ul").length) { obj.append("<ul />"); }
if (!position) { position = 0; }
tmp = obj.children("ul").children("li").eq(position);
if (tmp.length) { tmp.before(d); }
else { obj.children("ul").append(d); }
tmp = obj;
break;
}
if (tmp === -1 || tmp.get(0) === this.get_container().get(0)) { tmp = -1; }
this.clean_node(tmp);
this.__callback({ "obj": d, "parent": tmp });
if (callback) { callback.call(this, d); }
return d;
//基本操作:创建
create_节点:函数(obj,position,js,callback,is_loaded){
obj=这个。获取节点(obj);
位置=位置类型==“未定义”?“最后”:位置;
变量d=$(“”),
s=此。获取设置()。核心,
tmp;
如果(obj!=-1&&!obj.length){return false;}
如果(!is_loaded&&!this._is_loaded(obj)){this.loade_节点(obj,函数(){this.create_节点(obj,position,js,callback,true)});返回false;}
这是。u回滚();
如果(typeof js===“string”){js={“data”:js};}
如果(!js){js={};}
if(js.attr){d.attr(js.attr);}
if(js.metadata){d.data(js.metadata);}
if(js.state){d.addClass(“jstree-”+js.state);}
如果(!js.data){js.data=this._get_string(“new_node”);}
if(!$.isArray(js.data)){tmp=js.data;js.data=[];js.data.push(tmp);}
$.each(js.data,function(i,m){
tmp=$(“”);
if($.isFunction(m)){m=m.call(this,js);}
如果(typeof m==“string”){tmp.attr('href','#')[s.html_titles?”html:“text”](m);}
否则{
如果(!m.attr){m.attr={};}
如果(!m.attr.href){m.attr.href='#'}
tmp.attr(m.attr)[s.html_titles?“html”:“text”](m.title);
if(m.language){tmp.addClass(m.language);}
}
tmp.prepend( ;);
如果(!m.icon&&js.icon){m.icon=js.icon;}
如果(m.icon){
if(m.icon.indexOf(“/”)===-1){tmp.children(“ins”).addClass(m.icon);}
else{tmp.children(“ins”).css(“背景”、“url(““+m.icon+”)中心不重复”);}
}
d、 追加(tmp);
});
d、 预加( ;);
如果(obj==-1){
obj=this.get_container();
if(position==“before”){position=“first”}
如果(position==“after”){position=“last”}
}
开关(位置){
案例“before”:obj.before(d);tmp=this.\u get\u parent(obj);break;
案例“after”:对象在(d)之后;tmp=this.\u get\u parent(对象);break;
“内部”案例:
案例“第一”:
if(!obj.childrent(“ul”).length){obj.append(“
”);}
对象儿童(“ul”)。前置词(d);
tmp=obj;
打破
“最后”一案:
if(!obj.childrent(“ul”).length){obj.append(“
”);}
obj.儿童(“ul”)。附加(d);
tmp=obj;
打破
违约:
if(!obj.childrent(“ul”).length){obj.append(“
”);}
如果(!position){position=0;}
tmp=对象儿童(ul)、儿童(li)、情商(位置);
if(tmp.length){tmp.before(d);}
else{obj.children(“ul”).append(d);}
tmp=obj;
打破
}
如果(tmp==-1 | | tmp.get(0)==this.get_container().get(0)){tmp=-1;}
这个.clean_节点(tmp);
这个回调({“obj”:d,“parent”:tmp});
if(callback){callback.call(this,d);}
返回d;
有一个,请看最后一个。它包含您列举的所有操作的代码。您的意思是,我可以获得创建节点的值,并将其发送到我的数据库?最后一个示例是关于数据库交互的。它甚至称为“PHP&mySQL demo”。您所说的demo是什么意思?您打开了我提供的链接了吗?