我们的网站上有一些旧的代码,我似乎无法找到它为什么不能正常工作,所以我想知道新鲜的眼睛是否可以看到我不能。 这些是功能:
function Toggle(item) {
obj=document.getElementById(item);
visible=(obj.style.display!="none")
key=document.getElementById("x" + item);
if (visible) {
key.innerHTML="<img src='/images/common/leftsidebullet_closed.gif' height=10 width=10 border=0>";
obj.style.display="none";
} else {
key.innerHTML="<img src='/images/common/leftsidebullet_opened.gif' height=10 width=10 border=0>";
obj.style.display="block";
}
}
function Toggle2(item) {
obj=document.getElementById(item);
visible=(obj.style.display!="none")
key=document.getElementById("x" + item);
if (visible) {
obj.style.display="none";
key.innerHTML="<img src='/images/common/leftsidebullet_closedOrange.gif' height=10 width=10 border=0>";
} else {
obj.style.display="block";
key.innerHTML="<img src='/images/common/leftsidebullet_openedOrange.gif' height=10 width=10 border=0>";
}
}
示例页面位于here 如果单击页面中间的“第1部分 - 规格”列表项,则需要两次单击才能实际触发切换,而不是第一次执行此操作。 它没有造成错误,我想不出其他任何事情,所以我想我会问别人是否能看到什么。
答案 0 :(得分:2)
在页面加载时,display
属性设置为''
(在Chrome中)。这与'none'
不同。因此visible
错误地设置为true
。因此,您的脚本希望通过在display
设置'none'
属性来隐藏div。第二次单击时,脚本会将visible
评估为false
。因此它通过将属性设置为block
来显示div。
快速修复:
visible=(obj.style.display=="block")
代替
visible=(obj.style.display!="none")
答案 1 :(得分:0)
正如Jan所说......所以试试这个:
visible=!(obj.style.display==="block");
将插入现有代码 - 或者您可以取出!
并切换if语句。