0

私は location.hash が jQuery でどのように機能するかを理解しようとしています。そのために、最も基本的な形式から始めようとしています。私が思うことは単純なことです。

ここの投稿で見つけた他の誰かのコードを変更して作成した私のコードは次のとおりです。

$(document).ready(function(){

$("body").css("background-color", "#FF0");

$(window).bind( 'hashchange', function( event ) {

    if (window.location.hash == "red"){
        $("body").addClass("red");
    } else if (window.location.hash == "green") {
        $("body").addClass("green");
    }

    event.preventDefault();

});

$(window).trigger("hashchange");

});

そして、ここにページがありますhttp://dlacrem.16mb.com/dlatest/hash.html

今、私が言ったように、私は学ぼうとしているので、おそらく 10 行で 80 の間違いがあります :D しかし、hash.html#red に行くときに、本体に red クラスを追加するべきではありませんか?

Ben Almanの BBQ プラグインを使用しています。

よろしく、そして助けてくれてありがとう!

4

1 に答える 1

2

window.location.hash にはハッシュ記号が含まれています。

if (window.location.hash == "#red"){
    $("body").addClass("red");
} else if (window.location.hash == "#green") {
    $("body").addClass("green");
}

さらに、ボディを黄色にするために設定したインライン スタイルは、(!important を使用しない限り、ただし使用しないでください!) クラスで行うすべてをオーバーライドするため、スタイルシートで黄色にする必要があります。インラインではなく。

http://jsfiddle.net/4SwnQ/

ただし、赤にしてから緑にすると、緑のままになることに注意してください。これは、クラスを実際に削除することはなく、特定性が最も高いクラス (この場合はスタイルシートの最後にあるため緑色) を使用するためです。これを修正するには、他のクラスも削除する必要があります。

http://jsfiddle.net/4SwnQ/1/

于 2014-03-24T14:52:30.220 に答える