var divs = ["userMenu", "submenu"];
var visibleDivId = null;
function toggleVisibility(divId) {
if (visibleDivId == divId) {
visibleDivId = null;
} else {
visibleDivId = divId;
}
hideNonVisibleDivs();
}
function hideNonVisibleDivs() {
var i, divId, div;
for (i = 0; i < divs.length; i++)
{
divId = divs[i];
div = "#" + document.getElementById(divId).id;
if (visibleDivId == divId)
$(div).fadeIn();
else
$(div).fadeOut();
}
}
它第一次工作得很好。但是當我點擊一個關閉div的a元素之後嘗試打開相同的div時,我必須點擊它兩次。我明白了爲什麼,我第一次單擊div時,visisbleDivId與divId相同,因此visibleDivId將設置爲null。第二次點擊,它將會淡出,因爲它不再與divId相同。我必須點擊兩次才能看到div。怎麼解決?
我明白髮生了什麼問題,但我不知道如何解決它。
爲什麼'C#'標記? – Sybren
您可以將元素或JQuery對象存儲在變量中,而不僅僅是它們的ID。這可能會讓你更容易。 –
請給出完整的代碼或js小提琴 –