请教JavaScript树型目录不兼容火狐浏览器的问题,以下代码在IE中正常,在火狐浏览器中,点了以后不会展开和收缩目录,请高手们帮助解决一下,非常感谢!!!!!<html><head><script language="JavaScript">function treeClass(id)
{
this.id = id;
this.HTMLdata = "";this.start = function() //菜单开始
{
this.HTMLdata += '<table border="0" cellpadding="0" cellspacing="0" width="100%" id="'+this.id+'">';
}this.end = function() //菜单结束
{
this.HTMLdata += '</table>';
}
//==============================================================================this.m_start = function(name,tt) //菜单组开始
{
this.HTMLdata += '<tr><td class="bj" style="word-break:keep-all">'+(tt==1?'<img border=0 src=-.gif width=9 height=13> ':'<img border=0 src=+.gif width=9 height=13> ')+'</td>';
this.HTMLdata += '<td style="word-break:keep-all"><a href=# onclick="javascript:zgmm(event)">'+name+'</a></td>';
this.HTMLdata += '</tr>';
this.HTMLdata += '<tr style="display: '+(tt==1?'block':'none')+';">';
this.HTMLdata += '<td> </td>';
this.HTMLdata += '<td>';
this.HTMLdata += '<table border="0" cellpadding="0" cellspacing="0">';
}this.m_end = function() //菜单组结束
{
this.HTMLdata += '</table></td></tr>';
}
//==============================================================================
this.add_Sub = function(name,url,kj) //添加菜单项
{
this.HTMLdata += '<tr><td class="bj"><img border=0 src=d.gif></td><td style="word-break:keep-all">';
this.HTMLdata += '<span style="width:500px;"><a target="'+kj+'" href="'+url+'">'+name+'</a></span>';
this.HTMLdata += '</td></tr>';
}//==============================================================================this.print = function() //输出菜单
{
document.write(this.HTMLdata);
}
}function zgmm(mo)
{
var ero = event.srcElement.parentElement.previousSibling;
var mo = event.srcElement.parentElement.parentElement.nextSibling;
mo.style.display = (mo.style.display=="none")?"block":"none";
ero.innerHTML = (mo.style.display=="none")?"<img border=0 src=+.gif width=9 height=13> ":"<img border=0 src=-.gif width=9 height=13> ";
}
//==============================================================================</script>
</head><body><script language="JavaScript">
var tObj = new treeClass("A1")
tObj.start();
tObj.m_start("一级总目录",1);
tObj.m_start("二级分目录",0);
tObj.add_Sub("文件名","3/1/1.htm","contents");
tObj.m_end();
tObj.add_Sub("文件名","3/1.htm","contents");
tObj.add_Sub("文件名","3/2.htm","contents");
tObj.m_end();
tObj.end();
tObj.print();</script></body></html>
{
this.id = id;
this.HTMLdata = "";this.start = function() //菜单开始
{
this.HTMLdata += '<table border="0" cellpadding="0" cellspacing="0" width="100%" id="'+this.id+'">';
}this.end = function() //菜单结束
{
this.HTMLdata += '</table>';
}
//==============================================================================this.m_start = function(name,tt) //菜单组开始
{
this.HTMLdata += '<tr><td class="bj" style="word-break:keep-all">'+(tt==1?'<img border=0 src=-.gif width=9 height=13> ':'<img border=0 src=+.gif width=9 height=13> ')+'</td>';
this.HTMLdata += '<td style="word-break:keep-all"><a href=# onclick="javascript:zgmm(event)">'+name+'</a></td>';
this.HTMLdata += '</tr>';
this.HTMLdata += '<tr style="display: '+(tt==1?'block':'none')+';">';
this.HTMLdata += '<td> </td>';
this.HTMLdata += '<td>';
this.HTMLdata += '<table border="0" cellpadding="0" cellspacing="0">';
}this.m_end = function() //菜单组结束
{
this.HTMLdata += '</table></td></tr>';
}
//==============================================================================
this.add_Sub = function(name,url,kj) //添加菜单项
{
this.HTMLdata += '<tr><td class="bj"><img border=0 src=d.gif></td><td style="word-break:keep-all">';
this.HTMLdata += '<span style="width:500px;"><a target="'+kj+'" href="'+url+'">'+name+'</a></span>';
this.HTMLdata += '</td></tr>';
}//==============================================================================this.print = function() //输出菜单
{
document.write(this.HTMLdata);
}
}function zgmm(mo)
{
var ero = event.srcElement.parentElement.previousSibling;
var mo = event.srcElement.parentElement.parentElement.nextSibling;
mo.style.display = (mo.style.display=="none")?"block":"none";
ero.innerHTML = (mo.style.display=="none")?"<img border=0 src=+.gif width=9 height=13> ":"<img border=0 src=-.gif width=9 height=13> ";
}
//==============================================================================</script>
</head><body><script language="JavaScript">
var tObj = new treeClass("A1")
tObj.start();
tObj.m_start("一级总目录",1);
tObj.m_start("二级分目录",0);
tObj.add_Sub("文件名","3/1/1.htm","contents");
tObj.m_end();
tObj.add_Sub("文件名","3/1.htm","contents");
tObj.add_Sub("文件名","3/2.htm","contents");
tObj.m_end();
tObj.end();
tObj.print();</script></body></html>
在ff和ie下获取event对象的方式不一样而且获取引起事件的事件源的方式也不一样
function zgmm()
{
var ero = event.srcElement.parentElement.previousSibling;
var mo = event.srcElement.parentElement.parentElement.nextSibling;
修改后代码============================================================
function zgmm(evt)
{
var ero = (evt.srcElement?evt.srcElement:evt.target).parentNode.previousSibling;
var mo = (evt.srcElement?evt.srcElement:evt.target).parentNode.parentNode.nextSibling;