【发布时间】:2013-08-27 21:54:54
【问题描述】:
我使用这个问题的答案来解决我最初遇到的问题: JavaScript - Hide all other divs
它适用于我需要做的事情,但我想这样做,以便当您单击用于激活幻灯片的原始 div 时,它不会隐藏显示的幻灯片。因此,您无需双击当前活动的 div。
<script>
var divState = {};
function showhide(id) {
if (document.getElementById) {
var divid = document.getElementById(id);
divState[id] = (divState[id]) ? false : true;
//close others
for (var div in divState){
if (divState[div] && div != id){
document.getElementById(div).style.display = 'none';
divState[div] = false;
}
}
divid.style.display = (divid.style.display == 'block' ? 'none' : 'block');
}
}
</script>
您可以在此处查看我的项目,当您尝试单击一个角色时,它会更改幻灯片,但是当您双击它们时,它会隐藏您正在查看的幻灯片。我想阻止“隐藏”功能,所以如果您正在查看字符幻灯片。您不能再次单击他们的插图将其关闭。但是,如果您单击不同的字符,它将隐藏/切换幻灯片: http://www.redvelvetevents.com/tracy/newtest_july2013.htm
希望这是有道理的。我需要在上面的代码中添加什么,以便当前 div 不会激活该特定幻灯片的 HIDE 功能?仅当您单击其他字符时。
谢谢!
【问题讨论】:
-
首先不要使用div作为变量名
-
为什么不把
divState[id] = (divState[id]) ? false : true;改为divState[id] = true;。以及divid.style.display = (divid.style.display == 'block' ? 'none' : 'block');到divid.style.display ='block';的行
标签: javascript html onclick show-hide