该插件修改本站以前的文件树插件,地址:http://www.jq22.com/jquery-info432( 这个插件提供了收缩功能,但是不能根据JSON生成模型 )上进行修改
下载下来只需要解压即可运行 .
Json 格式类似这样( 完全可以根据自己的需要改 ):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | var json = [{ "name" : "中科慈航" , "code" : "ZKCH" , "icon" : "icon-th" , "child" : [{ "name" : "广州中科慈航" , "icon" : "icon-minus-sign" , "code" : "GZZKCH" , "parentCode" : "ZKCH" , "child" : [{ "name" : "广州中科慈航天河区分行" , "code" : "GZZKCHTQFH" , "icon" : "" , "parentCode" : "GZZKCH" , "child" : [] }] }, { "name" : "北京中科慈航" , "icon" : "" , "code" : "BJZKCH" , "parentCode" : "ZKCH" , "child" : [{ "name" : "北京中科慈航中城区分行" , "code" : "BJZKCHZCFH" , "icon" : "" , "parentCode" : "BJZKCH" , "child" : [] }] }] }, { "name" : "中科科技" , "code" : "ZKKJ" , "icon" : "icon-th" , "child" : [{ "name" : "广州中科科技" , "code" : "GZZKKJ" , "icon" : "icon-minus-sign" , "parentCode" : "ZKKJ" , "child" : [{ "name" : "广州天河中科科技" , "code" : "GZTHZKKJ" , "icon" : "" , "parentCode" : "GZZKKJ" , "child" : [] }] }] }]; |
JS:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | function tree(data) { for ( var i = 0; i < data.length; i++) { var data2 = data[i]; if (data[i].icon == "icon-th" ) { $( "#rootUL" ).append( "<li data-name='" + data[i].code + "'><span><i class='" + data[i].icon + "'></i> " + data[i].name + "</span></li>" ); } else { var children = $( "li[data-name='" + data[i].parentCode + "']" ).children( "ul" ); if (children.length == 0) { $( "li[data-name='" + data[i].parentCode + "']" ).append( "<ul></ul>" ) } $( "li[data-name='" + data[i].parentCode + "'] > ul" ).append( "<li data-name='" + data[i].code + "'>" + "<span>" + "<i class='" + data[i].icon + "'></i> " + data[i].name + "</span>" + "</li>" ) } for ( var j = 0; j < data[i].child.length; j++) { var child = data[i].child[j]; var children = $( "li[data-name='" + child.parentCode + "']" ).children( "ul" ); if (children.length == 0) { $( "li[data-name='" + child.parentCode + "']" ).append( "<ul></ul>" ) } $( "li[data-name='" + child.parentCode + "'] > ul" ).append( "<li data-name='" + child.code + "'>" + "<span>" + "<i class='" + child.icon + "'></i> " + child.name + "</span>" + "</li>" ) var child2 = data[i].child[j].child; tree(child2) } tree(data[i]); } } tree(json) |
js和json只有 code 和 parentCode 是最重要的......是根据这两个属性来完成递归, 上面的方法也没有优化只是简单的实现 .
这是搜索功能 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <script type= "text/javascript" >$( function () { $( '.tree li:has(ul)' ).addClass( 'parent_li' ).find( ' > span' ).attr( 'title' , '关闭' ); $( '.tree li.parent_li > span' ).on( 'click' , function (e) { var children = $( this ).parent( 'li.parent_li' ).find( ' > ul > li' ); if (children.is( ":visible" )) { children.hide( 'fast' ); $( this ).attr( 'title' , '展开' ).find( ' > i' ).addClass( 'icon-plus-sign' ).removeClass( 'icon-minus-sign' ); } else { children.show( 'fast' ); $( this ).attr( 'title' , '关闭' ).find( ' > i' ).addClass( 'icon-minus-sign' ).removeClass( 'icon-plus-sign' ); } e.stopPropagation(); }); });</script> |
特别申明:
本站所有资源都是由网友投稿发布,或转载各大下载站,请自行检测软件的完整性!
本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!
如有侵权请联系我们删除下架,联系方式:lei1294551502@163.com