0

テンプレートにフィードし、各インストラクターの「カード」を生成するインストラクターデータのjson配列があります。各インストラクターには名前付きのアンカーが含まれており、外部ページから生成されたさまざまなアンカーにリンクできるようにしたいと考えています。すなわちinstructors.htm#MrsTaylorGreen

カードが生成されるまでに、ブラウザのアンカーへのジャンプ動作はすべて完了しているようです。

ここから派生したjQueryのこのビットを検討しています

// page load, draw instructor cards then...
// scroll to the named anchor if there is one
var anchor = document.location.href.split("#")[1];
if($("#" + anchor).length)
    $('html, body').animate({
        scrollTop: $("#" + anchor).offset().top
    }, 2000);

これは必要ですか?または、動的アンカーにリンクするためのより効率的な代替手段はありますか?

4

1 に答える 1

2

代わりにこれを使用して、(アンカーの)ハッシュを取得します。

var anchor = window.location.hash;

その後:

if ($(anchor).length > 0)
    $('html, body').animate({
    scrollTop: $(anchor).offset().top
}, 2000);

ハッシュを取得する方法document.location.href.split("#")[1];は、URLにハッシュがない場合、エラーを生成する可能性があります(そして発生します)。その場合、(分割からの)配列には要素が1つしかないためです。

于 2013-02-08T01:28:09.813 に答える