1

好的,所以我从以前的开发人员那里继承了一个网站来进行一些升级。让我烦恼的一件事(尽管不是客户端)是单个选项卡始终是“.selected”选项卡,即使它实际上没有被选中。从技术上讲,我认为它是“选定的默认值”。

网站是rooferanchorage.com

我尝试从 .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"
        }
    }
4

1 回答 1

1

源代码的第 72-73 行如下:

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

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

目前您的代码正在传递3,这意味着它将始终是第 4 个选项卡 - 从零开始的索引0,1,2,3可以解释为什么始终选择“商业”。

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

于 2012-10-30T18:39:52.460 回答