用xslt轻松实现树形折叠导航栏(4)

作者:未知 来源:未知 添加时间:2006年7月3日 字体:

展开和折叠其实就是显示或不显示display:none or block)它与可见与不可见(visible or invisible)是有区别的, 前者不在页面预留空间。 这个toggle函数完成两个功能, 改变tr原来的hidden属性, 使原来不显示的显示; 改变img的src属性, 更改图片。 

toggle.js 

function toggle(id) 

var thisrow = document.all.item(id); 
if (thisrow) 

if (thisrow.getattribute("expanded") == 'yes') 

thisrow.setattribute("expanded", "no"); 
thisrow.children(0).children(0).children(0).src = "images/bs.gif"; 

var allrows = document.all.tags("tr"); 
for (var i=1; i < allrows.length; i++) 

var row = allrows[I; 
if (row.getattribute("ancestorid") == id) 

if (row.getattribute("expanded") == 'yes') { 
toggle(row.getattribute("id")); 

row.classname = 'navigator-hidden'; 


thisrow.classname = 'navigator'; 

else 

thisrow.setattribute("expanded", "yes"); 
thisrow.children(0).children(0).children(0).src = "images/bo.gif"; 

var allrows = document.all.tags("tr"); 
var depth = parseint(thisrow.getattribute("depth")); 
for (var i=1; i < allrows.length; i++) 

var row = allrows[I; 
if (row.getattribute("ancestorid") == id !amp;!amp; 
parseint(row.getattribute("depth")) == depth + 1 ) 

row.classname = 'navigator'; 






到此结束。

诚然这个toc的功能还是最基本的, 例如我还未做内容和目录的同步,其中有的地方还可以修改, 对xml和xsl文件可以进一步瘦身。 不过对一般用户来讲, 这已经足够了。 
真诚希望这篇文章能对您有所启发、有所帮助, 以后做出更酷、更快、更方便、功能更强的toc。

ppdesk