请教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>&nbsp;':'<img border=0 src=+.gif width=9 height=13>&nbsp;')+'</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>&nbsp;":"<img border=0 src=-.gif width=9 height=13>&nbsp;";
 }
//==============================================================================</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>

解决方案 »

  1.   

    event.srcElement
    在ff和ie下获取event对象的方式不一样而且获取引起事件的事件源的方式也不一样
      

  2.   

    哪位高手能帮我改一下代码吗?小弟对Javascript不熟,先感激了!!!!
      

  3.   

    终于解决了,写出来供后来者参考,修改了以下几行:原来的代码============================================================
    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;