好的,所以我从以前的开发者那里继承了一个网站进行一些升级。令我烦恼的一件事(虽然不是客户端)是单个选项卡始终是“.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"
}
}
答案 0 :(得分:1)
您的源代码第72-73行是:
//SYNTAX: tabdropdown.init("menu_id", [integer OR "auto"])
tabdropdown.init("colortab", 3)
引用问题中的代码,您可以在init
方法中看到条件if (dselected=="auto" ...
,并且显然会根据网址检查菜单项中锚点的href
看看它是否应该被选中。
目前您的代码正在传递3
,这意味着它始终是第四个标签 - 从零开始的索引0,1,2,3
可以解释为什么&#34;商业&#34;总是被选中。
回答,尝试将3
更改为"auto"
,或者,如果您使用静态html文件(例如,如果residential.html是实际的html文件),请尝试更改整数以表示标签应该为每一个选择。例如,住宅将是2
。