我有一個頂部導航列表,每個假設打開一邊的鏈接列表..這些鏈接列表首先隱藏然後,它應該顯示(和以前顯示的鏈接列表應該隱藏).. 當我點擊相應的頂部導航鏈接時,側面鏈接顯示完美,但每當我點擊其中一個鏈接,所有側面鏈接消失..通過調用函數來解決它它顯示了,但是接下來出現了另一個問題。當我點擊另一個頂部導航鏈接(假設打開另一個鏈接列表)時,第一個鏈接不會隱藏,而第二個鏈接不會顯示! ! 經過很長時間的搜索和嘗試新的東西,我嘗試了很多東西..但它不能正常工作!保持div顯示並隱藏舊的
我的javascript:
var prevItem = null;
function hereB(t)
{
switch (t)
{
case 'item-1':
showIT('left-1');
break;
case 'item-2':
showIT('left-2');
break;
}
if(prevItem != null)
{
var preI = document.getElementById(t);
prevItem.className += "box";
prevItem.className = prevItem.className.replace(/{\b}?hereB/, "");
}
t.className += " hereB";
prevItem = t;
}
function inform(t){alert(document.getElementById(t))}
function showIT(d)
{
switch(d)
{
case 'left-1':
document.getElementById('left-2').style.display="none";
document.getElementById('left-2').style.visibility="hidden";
document.getElementById(d).style.display="block";
document.getElementById(d).style.visibility="visible";
break;
case 'left-2':
document.getElementById('left-1').style.display="none";
document.getElementById('left-1').style.visibility="hidden";
document.getElementById(d).style.display="block";
document.getElementById(d).style.visibility="visible";
break;
}
}
這裏是在的jsfiddle整個事情:
任何建議,將不勝感激..
** * *** 更新完整的答案 ** * ** * 整個Java腳本代碼,使一切工作正常和正常是這樣的:
<script type="text/javascript">
var prevItem = null;
function hereB(t)
{
showIT(t.hash.substr(1));
if(prevItem != null)
{
prevItem.className += "box";
prevItem.className = prevItem.className.replace(/{\b}?activeTOP/, "");
}
t.className += " activeTOP";
prevItem = t;
}
function showIT(d)
{
switch(d)
{
case 'left-1':
document.getElementById('left-2').style.display="none";
document.getElementById('left-2').style.visibility="hidden";
document.getElementById(d).style.display="block";
document.getElementById(d).style.visibility="visible";
break;
case 'left-2':
document.getElementById('left-1').style.display="none";
document.getElementById('left-1').style.visibility="hidden";
document.getElementById(d).style.display="block";
document.getElementById(d).style.visibility="visible";
break;
default:
document.getElementById('left-1').style.display="none";
document.getElementById('left-1').style.visibility="hidden";
document.getElementById('left-2').style.display="none";
document.getElementById('left-2').style.visibility="hidden";
break;
}
}
</script>
在HTML
調用它:
<a href="#item-4" onClick="hereB(this)"> GO item-5 </a>
什麼是你應該在'hereB()''的聲明之開關來匹配? 't'是'this',它是錨元素,不是字符串。你的情況與'href'值不匹配,唯一匹配的就是父'LI'的ID。 – Barmar
謝謝你SOOOOOOO很多..我只是取代'代碼'這個名稱的股利,它神奇地工作:))你會請回答我的Q作爲答案,所以我檢查它的答案?再次感謝你 – user2517408