首页 > 编程知识 正文

ztree异步加载展开到某个层级,js异步加载方式有哪些

时间:2023-05-05 16:55:10 阅读:37200 作者:1251

zTree是通过jQuery实现的多功能“树插件”。 在本文中,您将通过共享jQuery zTree异步加载来添加子节点重复问题。 有需要的朋友请参考

zTree介绍

zTree是通过jQuery实现的多功能“树插件”。 卓越的性能、灵活的配置和多种功能相结合是zTree的最大优势。

zTree是开源免费软件(MIT许可证)。 如果你对zTree感兴趣,或者你想为zTree的持续发展提供资金,你可以提供资金。 zTree v3.0按功能划分了核心代码,这样就可以不加载不需要的代码

采用延迟加载技术,可以轻松加载上万个节点,IE6也几乎可以秒杀

与IE、FireFox、Chrome、Opera、Safari等浏览器的兼容性

JSON数据支持

支持静态和Ajax数据异步加载

支持任意更换外观/自定义图标(取决于css ) ) ) ) ) ) ) ) ) )。

支持极其灵活的checkbox或radio选择功能

提供多个事件响应回调

的灵活编辑(添加/删除/修改/搜索)功能,可以自由拖动节点,也可以在多节点中拖动

可以在一个页面中同时生成多个Tree实例

通过简单的参数构成实现灵活多样的功能

添加原始问题//节点、产品和版本

functionaddnode{

rmenu.CSS (可见性' : '隐藏' );

var treenode=ztree.getselectednodes ([0];

var pid;

var nodeName;

var treelevel;

if (! treenode event.target.tagname.to lower case!='button'$(event.target ).parents ) ) a ).length==0) {

//添加产品节点

pid=0;

treeNode=null;

三级=1;

} else if (趋势科技) {

//添加版本节点

pid=treeNode.id;

三级=2;

}

$.post (

' AddNode.action ',

{ type: treelevel,id: pid },

功能(nodeidandname ) {

varparams=/([^|] )|) [^|] )/.exec ) nodeidandname );

if (! () )! treenode event.target.tagname.to lower case!='button'$(event.target ).parents ) (a ).length==0)|| treeNode.open ) ) )。

zree.expandnode(treenode,true );

}

treenode=ztree.add nodes (treenode,{ id: params[1],pid: pid,isParent: 'true ',name: params[2]

);

}

如果原始直接添加子节点,并且父节点未展开,则会添加两个相同的子节点(第一次时)。 然后确定是否展开父节点,但展开父节点时,将添加两个相同的子节点。 如果是第一次,这个问题怎么解决呢?

方法1

if (! () )! treenode event.target.tagname.to lower case!='button'$(event.target ).parents ) (a ).length==0)|| treeNode.open ) ) )。

zree.expandnode(treenode,true );

}

treenode=ztree.add nodes (treenode,{ id: params[1],pid: pid,isParent: 'true ',name: params[2]

if (变更为! treenode event.target.tagname.to lower case!='button'$(event.target ).parents ) (a ).length==0) () ) ) ) 652 )

{

treenode=ztree.add nodes (treenode,{ id: params[1],pid: pid,isParent: 'true ',name: params[2]

}

elseif(treenode.open ) ) )。

{

if(treenode.isparent ) ) )。

{

ztree.reasyncchildnodes (treenode,' refresh ';

}

else

{

treeNode.isParent=true;

ztree.reasyncchildnodes (treenode,' refresh ';

}

}

else

{

zree.expandnode(treenode,true );

treenode=ztree.add nodes (treenode,{ id: params[1],pid: pid,isParent: 'true ',name: params[2]

}

问题可以解决,但是已经优化了吗? 我觉得更改的代码分类太多了

最好的方法

好像不用那么麻烦吧? 前些天,我回答了类似的问题。

1、点击添加子节点,直接将数据保存到ajax中,捕获success事件

2、对于ajax success,使用treeNode.zAsync属性可以知道此父节点是否进行了异步加载。 如果为false,则直接刷新reAsyncChildNodes;如果为true,则直接刷新addn . if (treenode event.target.tagname.to lower case!='button'$(event.target ).parents ) (' a ).length==0)|| treeNode.zAsync ) () ) ) ) )。

treenode=ztree.add nodes (treenode,{ id: params[1],pid: pid,isParent: 'true ',name: params[2]

else

ztree.reasyncchildnodes (treenode,' refresh ';

上面是我给大家整理的,希望以后对大家有帮助。

相关文章:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。