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小提琴 –