0

外部ページにアンカー タグを読み込もうとしています。私はこの方法を使用しています:

<a href="page.html#div>

別のページの特定の div にリンクします。

<div name="div">
stuff
</>

これまでの問題は、リンクがそのページの特定の div ではなく、外部ページにのみリンクしていたことでした。問題がjqueryを含めることにあることを発見しました。リンクを押すと、正しい div が一瞬表示された後、ページがすぐにページの上部に戻ります。

次のような方法で、外部ページで jQuery の自動スクロールを無効にする方法はありますか。

 $(document).ready(function(e) {
 e.preventDefault();  
 });

リンクにこれを含めてみました:

onclick="return false;

しかし、それはそれらが機能しないことを意味します。

4

1 に答える 1

2

アンカーは、<a>タグではなく、タグのname属性で機能します<div>

リンク:

<a href="page.html#here>
to link to another page's specific div.
</a>

ターゲットの宛先:

<a name="here">
stuff
</a>

jQueryを使用してこの動作を台無しにしようとしている場合(たとえば、ターゲットページでjavascriptを介してそれを防ぐ)、ブラウザが最初にページをロードし、次にページでjavascriptを実行するため、問題が発生します。宛先ページが非表示になっている場合、jQueryがコンテンツを変更する前にコンテンツが一方向に表示されることがあります。(javascriptではなく)静的CSSスタイルルールを使用して最初にターゲットページを非表示にできない限り、javascriptが実行される前にページが表示される可能性があるため、これについてできることは何もありません。

最初のページにJavaScriptを配置できる場合は#here、リンクからを削除して、クリックされたときに余分なターゲットが含まれないようにすることができます。

2番目のページのHTMLを変更できる場合は、nameターゲットを削除して、#hereが何もしないようにすることができます。

于 2013-02-24T14:59:24.057 に答える