2

この小さなスクリプトを使用して、別の要素をクリックして要素のクラスを切り替えています。以下はコードを簡略化したものです。

//Toggle comments
function togglecomments() {
    function shiftcomments() {
        var comments = document.getElementsByTagName('aside')[0];
        if(comments.className = "hide"){comments.className = "show";}
        else{comments.className = "hide";};
    }
    var commenttoggle = document.getElementById('toggle-comments');
    bindEvt(commenttoggle, "click", shiftcomments);


}
bindEvt(window, "load", togglecomments);

一度は機能しますが、その後クリックしてもクラスはトグルしません。興味のある方は、私が使用するイベント ハンドラを次に示します: http://pastebin.com/md3dPvMJ (以前は問題なく動作していたので、問題にはなりません。)

私が間違っていたアイデアはありますか?

フィードバックをお寄せいただきありがとうございます。

4

2 に答える 2

1

あなたのifステートメントでは、これを持っています:

if(comments.className = "hide")

そのはず:

if(comments.className === "hide") 

これも機能します:

if(comments.className == "hide") 

そこで実際に行っているのは、className を「非表示」に変更することであり、同等性をチェックすることではありません。

==との違いについては=== stackoverflow で実際に別の質問を参照してください:

于 2012-09-15T01:54:13.103 に答える