单个菜单项始终保留在类".selected",即使未选中也是如此



好吧,所以我从以前的开发人员继承了一个站点,以进行一些升级。让我烦人的一件事(尽管不是客户端)是一个选项卡始终是" .selected"选项卡,即使实际上未选择它。从技术上讲,我认为这是"选择默认"。

网站是屋顶园区。

我尝试仅从.js中的最后一部分中删除默认值,但没有效果。我可能会说,我是一个javascript的文盲。我相信这是相关的代码 - 关于如何使所选类正确工作的任何建议?

isSelected:function(menuurl){
    var menuurl=menuurl.replace("http://"+menuurl.hostname, "").replace(/^//, "")
    return (tabdropdown.currentpageurl==menuurl)
},
    init:function(menuid, dselected){
        this.standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
        var menuitems=document.getElementById(menuid).getElementsByTagName("a")
        for (var i=0; i<menuitems.length; i++){
            if (menuitems[i].getAttribute("rel")){
                var relvalue=menuitems[i].getAttribute("rel")
                document.getElementById(relvalue).firstlink=document.getElementById(relvalue).getElementsByTagName("a")[0]
                menuitems[i].onmouseover=function(e){
                    var event=typeof e!="undefined"? e : window.event
                    tabdropdown.dropit(this, event, this.getAttribute("rel"))
                }
            }
            if (dselected=="auto" && typeof setalready=="undefined" && this.isSelected(menuitems[i].href)){
                menuitems[i].parentNode.className+=" selected default"
                var setalready=true
            }
            else if (parseInt(dselected)==i)
                menuitems[i].parentNode.className+=" selected default"
        }
    }

在您的源代码的第72-73行上,如下:

//SYNTAX: tabdropdown.init("menu_id", [integer OR "auto"])
tabdropdown.init("colortab", 3)

在问题中引用代码,您可以在读取if (dselected=="auto" ...init方法中看到条件,并且显然会检查菜单项内部的锚固量的href,以查看是否应该选择的选项卡。

当前您的代码正在通过3,这意味着它将始终是第4个选项卡 - 基于零的索引0,1,2,3,它可以解释为什么总是选择"商业"。

回答,尝试将该3更改为 "auto",或者,如果您使用的是静态HTML文件(例如,如果Residential.html是实际的HTML文件)尝试更改整数以表示每个每个文件都应选择的选项卡。例如,住宅为2

最新更新