0

我使用这个问题的答案来解决我最初遇到的问题: JavaScript - 隐藏所有其他 div

它适用于我需要做的事情,但我想这样做,以便当您单击用于激活幻灯片的原始 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 功能?仅当您单击不同的字符时。

谢谢!

4

1 回答 1

1

您可以将代码更改为:

var divState = {};
function showhide(id) {
if (document.getElementById) {
    var divid = document.getElementById(id);
    divState[id] = true;//I changed this line
    //close others
    for (var div in divState){
        if (divState[div] && div != id){
            document.getElementById(div).style.display = 'none';
            divState[div] = false;
        }
    }
    divid.style.display = 'block';//I changed this line
}
}
于 2013-08-27T23:15:56.140 回答