要使用一个javascript的树菜单,找了个现成的Tigra Tree Menu,看了下效果,还不错,就打算使用。 http://www.softcomplex.com/products/tigra_tree_menu/
我的需求是根据从服务器取的数据动态地构建树结构,Tigra Tree Menu内部实现是用document.write把树状结构内容写到页面,动态地添加<script/>标签,document.write会重新打开一个输出流,直接写到页面中,把原来的文档都删掉了。
结论:Tigra Tree Menu适合在页面加载前就知道树状结构的内容,然后按照它的documentation直接使用即可,对于动态的数据生成菜单,不可直接使用。
一直忘了(也可能是偷懒心理)补充这篇文章,现在补充一下,要实现树结构动态加载数据,稍微修改一下tree.js的源代码就行了。
1. 备份原始的tree.js,复制一份命名为mytree.js,在mytree上修改(备份的原因是担心出错)
2. 修改tree的toggle函数,原始函数为:this.toggle = function (n_id) { var o_item = this.a_index[n_id]; o_item.open(o_item.b_opened) };
修改为: