0

私が最初に抱えていた問題について、この質問への回答を使用しました: 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 機能をアクティブにしないようにするには、上記のコードに何を追加する必要がありますか? 別の文字をクリックした場合のみ。

ありがとう!

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 に答える