0

現在、そのようなものがあります:

$anchor = window.location.hash.replace("#", "");

if ($anchor == 'Home'){
       --perform some actions--
}

これは機能しますが...ページが最初にアクセスされたときにのみ機能します。つまり、test.htmlにいて、ブラウザのURLに手動で#Homeを追加した場合、ページを更新しない限り何も起こりません。これを作成する方法はありますか?最初にページを読み込んだときだけでなく、常にハッシュタグをチェックしますか?私が探していたものと同じようなことをしているように見えた.liveまたは私がかつて使用した何かがあったことを覚えています。

編集 :

var $zproductclick = jQuery.noConflict();
$zproductclick('a').live('click', function(event){ 

    if ((window.location.hash.replace("#", "")) == 'home'){
       $zproductclick(".homeproduct").add(".networkproduct").add(".parentalproduct").add(".allproduct").hide();
       $zproductclick(".homeproduct").add(".allproduct").fadeIn(1000);
       $zproductclick("#prodall").add("#prodnet").add("#prodparent").removeClass("active");
       $zproductclick("#prodhome").addClass("active");
       $zproductclick("#prodversion").removeClass("prodselectno").addClass("prodselect");
    }

})

アクションを実行するために2回クリックする必要があるのはなぜですか?クリック直後ではなく、古いハッシュを読み取っているようです。

4

2 に答える 2

0

IE用に編集

実例

JQuery

var x = window.location.href;

    function checkhash(){
        x = window.location.href;
        $('#results').html(x); //Just to show the results, Delete in your code
        //Put your functions here....       
        window.setTimeout(checkhash, 1);
    }

checkhash();
于 2012-11-05T22:27:45.873 に答える
0

各リンクにイベントを追加するだけです。それで全部です。

$('a').on('click', function(event){ /* check hash tag here */ })

デフォルトでは、リンクにハッシュタグがある場合はそのIDに移動し、存在しない場合はページトップに移動します。したがって、何かに一致する場合は、event.preventDefault();を呼び出します。

于 2012-11-05T20:49:13.400 に答える