1

ユーザーがページのさまざまなセクションにスクロールできるナビゲーション付きの1ページサイトがあります。ユーザーがリンクをクリックすると、URL のハッシュが変更され、ユーザーがページをスクロールするとハッシュが変更されます。私が抱えている唯一の問題は、ユーザーが上部にいて、リンクをクリックしてフッターに移動すると、さまざまなセクションをスキップしてハッシュが変更されるため、最終的にフッターに到達する前に、選択された状態のナビゲーション リンクをすばやく強調表示することです。ページがフッターまでスクロールしている間、ハッシュ変更機能を無効にする方法はありますか?

$(window).on('hashchange', function(){
   var id = window.location.hash.substring(1);
   $('#header ul li').removeClass('selected');
   $('[data-rel="'+id+'"]').addClass('selected');
});
4

2 に答える 2

1

だからあなたは使うべきです

$('a').click(function (e) {
    e.preventDefault();
}

独自のコードを実行します。私があなたを正しく理解していれば、これはうまくいくはずですか?

http://jsfiddle.net/FnfgJ/1/

于 2013-05-08T08:58:54.663 に答える
0

あなたの答えはノーです。ユーザーが URL のハッシュを変更したい場合は、いつでも変更できます。あなたができることは、すべてのリンクを無効にすることです:

$('a').click(function () { return false; }); // disables
$('a').unbind('click'); // enables them again
于 2013-05-08T08:21:04.677 に答える