展开和折叠其实就是显示或不显示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。