jstree如何清除重新渲染

jstree如何清除重新渲染,第1张

jstree不用通过重新调用一次$(dom)jstree({})来重新加载,直接清除dom里的内容也是无效的,因为jstree的class等数据还绑定在dom上。

必须在$(dom)jstree({})之前加上$jstreedestroy ();

销毁原来的所有节点后,新建即可

jstree默认打开有两种方式,一种在生成树结构时在有子节点的li中加class="jstree-open"

还有一种是树形载入完成后用jstree的展开所有节点open_all事件展开所有节点

跳转是要在生成时在li中加<a href="#">XXX<a/>或在载入完后再用js加载

动态加载 那 就是 通过ajax 发出请求 接受 JSON格式的字符串 再转化成 javascript 识别的JSON 对象

也就是 “${themeList}” 就可以了

前台通过URL 到 服务端 请求数据 服务端(返回的必须是JSON格式的) 返回数据 前台处理就行了

意思是让您把jstree的js 里面那个位置的那段代码替换成他的:

for (var i=0; i<datalength; i++) 

var n = TREE_OBJcreate(data[i], $(NODE)); //就是这里特别耗

if (onaddnode) onaddnode(n); 

var firstChild = TREE_OBJchildren(NODE)[0]; 

if ($(firstChild)attr('id')==-1) 

TREE_OBJremove(firstChild); 

修改成:

var children=""; 

for (var i=0; i<datalength; i++) 

children += TREE_OBJparseJSON(data[i]); 

if (children != "") 

$(NODE)children('ul')html(children); 

var firstChild = TREE_OBJchildren(NODE)[0]; 

if ($(firstChild)attr('id')==-1) 

TREE_OBJremove(firstChild);

区别是一个是for循环里一次一次的生成节点插入页面,这样本来就很卡

另一个是将所有节点先存入一个变量里,然后在一次性插入页面里,这样效率自然高很多很多

var checkedNodes = $("#tt")tree("getChecked");

for(var i = 0 ; i < checkedNodeslength;i++){

alert(checkedNodes[i]id);

}

$('#tree_2')jstree({

'plugins': ["wholerow", "checkbox", "types"],

'core': {

"themes" : {

"responsive": false

},

'data': [{

"text": "Same but with checkboxes",

"children": [{

"text": "initially selected",

"state": {

"selected": true

}

}, {

"text": "custom icon",

"icon": "fa fa-warning icon-state-danger",

"state": {

"selected": true

}

}, {

"text": "initially open",

"icon" : "fa fa-folder icon-state-default",

"state": {

"opened": true

},

"children": ["Another node"]

}, {

"text": "custom icon",

"icon": "fa fa-warning icon-state-warning"

}, {

"text": "disabled node",

"icon": "fa fa-check icon-state-success",

"state": {

"disabled": true

}

}]

},

"And wholerow selection"

]

},

"types" : {

"default" : {

"icon" : "fa fa-folder icon-state-warning icon-lg"

},

"file" : {

"icon" : "fa fa-file icon-state-warning icon-lg"

}

}

});

以上就是关于jstree如何清除重新渲染全部的内容,包括:jstree如何清除重新渲染、jstree是否定义了让每个节点会有一个url地址,直接点击节点的跳转到其它的页面去。。、javascript jstree 异步加载 大数据 json格式数据 动态加载等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9810989.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存