0

画像をクリックすると非表示および表示される 2 つの div があります。dojo と javascript の組み合わせでそれを行いました。デフォルトでは、最初にページが読み込まれると、2 つの div は非表示になります。画像をクリックすると、div が表示されます。ここで私の問題は、そのページの任意のタブをクリックすると、ページ全体が更新され、div が非表示になることです。ページを更新したり、そのページの他のタブに移動した後でも、画像をクリックしない限り、これらの 2 つの div が表示されるようにしたい

ここに私のコードがあります:

<script type="text/javascript">
    function toggleDivs(){
    console.info("info message");
    if( dojo.style(dojo.byId('foo'), "display") == "block"){
        dojo.style(dojo.byId('foo'), "display", "none");
        dojo.style(dojo.byId('foo1'), "display", "none");
    } else {
        dojo.style(dojo.byId('foo'), "display", "block");
        dojo.style(dojo.byId('foo1'), "display", "block");
    }
}
</script>

<div class="wpthemeRight" id="foo1" style="display: none">
</div>
<div class="wpthemeBanner" id="foo" style="display: none">
</div>
<div id="ibm-tools" style="display: block;" aria-label="Ibm tools" class="">
<a href="#" onclick="toggleDivs();"><img src="./images/gear.jpg"></a>
</div>

これを行う方法を教えてください。前もって感謝します!!!!

div の状態を localstorage に保存しようとしましたが、運がありません

コードは次のとおりです。

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js"></script>
<script type="text/javascript">
    function checkDivState(){
        localStorage["#foo1"] = true;
        f(localStorage["#foo1"] = true)
        {   
            dojo.style(dojo.byId('foo'), "display", "block");
            dojo.style(dojo.byId('foo1'), "display", "block");
        }
        }
        else
        {
            dojo.style(dojo.byId('foo'), "display", "none");
            dojo.style(dojo.byId('foo1'), "display", "none");
        }
    }
    </script>

そして体内では、

4

1 に答える 1

0

div の状態をローカル ストレージに保存できます。たとえば、foo1 div の状態を保存したい場合。

localStorage["#foo1"] = true;

ページの読み込み時に、localStorage["#foo1"] が true かどうかを確認してから、div を表示できます。

(chrome で localStorage を表示できます -> F12 (開発者ツール) -> Resources -> Local Storage)


localStorage["#foo1"] は常に true になるため、checkDivState 関数は間違っています。これを修正させてください。

  <script type="text/javascript">
function toggleDivs(){
    console.info("info message");
    if( dojo.style(dojo.byId('foo'), "display") == "block"){
       localStorage["#foo1"] = false;
       dojo.style(dojo.byId('foo'), "display", "none");
       dojo.style(dojo.byId('foo1'), "display", "none");
    } 
    else {
       dojo.style(dojo.byId('foo'), "display", "block");
       dojo.style(dojo.byId('foo1'), "display", "block");
       localStorage["#foo1"] = true;
     }
}

function checkDivState(){       
    f(localStorage["#foo1"] = true)
    {   
        dojo.style(dojo.byId('foo'), "display", "block");
        dojo.style(dojo.byId('foo1'), "display", "block");
    }
    }
    else
    {
        dojo.style(dojo.byId('foo'), "display", "none");
        dojo.style(dojo.byId('foo1'), "display", "none");
    }
}

ドキュメントの準備ができたら checkDivState を呼び出します。多分それは助けます

于 2013-06-06T07:06:10.127 に答える