我一整天都在努力让它工作,我已经完成了 95% 的工作!有人可以看看我的代码并帮助我做一件(希望是简单的)事情吗?我有 3 个 CSS 选项卡,单击时会更改样式(活动与非活动),并在下面显示相应的 div 内容。一切正常(至少在 Firefox 中),但让我恼火的是我得到的代码(来自http://www.digimantra.com/tutorials/simple-tabs-using-javascript-and-css/) 使用具有相同内容的“tabContent”和“tab1Content”。这基本上复制了(在代码中)我网站的大部分内容。(用户不会看到差异,但我是干净代码的坚持者,不能让自己使用这种看似草率的解决方法!)有没有办法让这个工作没有重复的内容?(请对我说清楚;我是一名手工编写 xHTML 和 CSS 代码的设计师,我对 js 的了解已经足够危险了,但我无法从头开始编写自己的 js 代码。请原谅我!)
我的完整代码和 css 工作测试在这里:http ://www.happywivestravel.com/testTabToggle.html
有问题的javascript:
<script type="text/javascript">
function tabs(x)
{
var lis=document.getElementById("sidebarTabs").childNodes; //gets all the LI from the UL
for(i=0;i<lis.length;i++)
{
lis[i].className=""; //removes the classname from all the LI
}
x.className="selected"; //the clicked tab gets the classname selected
var res=document.getElementById("tabContent"); //the resource for the main tabContent
var tab=x.id;
switch(tab) //this switch case replaces the tabContent
{
case "tab1":
res.innerHTML=document.getElementById("tab1Content").innerHTML;
break;
case "tab2":
res.innerHTML=document.getElementById("tab2Content").innerHTML;
break;
case "tab3":
res.innerHTML=document.getElementById("tab3Content").innerHTML;
break;
default:
res.innerHTML=document.getElementById("tab1Content").innerHTML;
break;
}
}
的HTML
<div class="tabContainer" >
<ul class="digiTabs" id="sidebarTabs">
<li id="tab1" class="selected" onclick="tabs(this);">Overview</li>
<li id="tab2" onclick="tabs(this);">Itinerary</li>
<li id="tab3" onclick="tabs(this);">Destination Info</li>
</ul>
<div id="tabContent"><p>Tab 1 content here...</p></div>
<div id="tab1Content" style="display:none;"><p>Tab 1 content repeated here...</p></div>
<div id="tab2Content" style="display:none;"><p>Tab 2 content here...</p></div>
<div id="tab3Content" style="display:none;"><p>Tab 3 content here...</p></div>
感谢任何对此有任何想法的人。我很接近得到我想要的东西,这很痛苦!=)(为了清楚起见,我的目标是有一个简单的仅css(无图像)选项卡式导航,它会根据活动/非活动选项卡改变外观。我研究过jQuery UI,但它看起来有点庞大我想要,并且我想要更容易/更好地控制 css。)