コンテンツペインを表示または非表示にしてロードするjQueryを使用して簡単なナビゲーションを行います。アンカータグを使用して表示するウィンドウを決定しています。私はまた、ページがロードされたときに#hash
要素を表示するために "準備完了"機能を使用します。かなり基本的な:アンカータグからのスクロールの防止
$(document).ready(function() {
$('#video_form_content > div').hide();
var showTab = window.location.hash || "#basic-info";
$(showTab).show();
}
$('#video_form_tabs li').on('click', function() {
$('#video_form_content > div').hide();
var target = $(this).children('a').attr('href');
$(target).show();
})
何が起こっている、しかし、要素がクリックされたとき、ページがターゲットdiv
の一番上にジャンプするということです。私はこのジャンプを望んでいませんが、アンパックタグのデフォルトの機能を保持して、ハッシュをURLに追加して、同じタブをリフレッシュするとそのタブを再び開くようにしたいと考えています。
は、ここで私は、クリックイベントに$(window).scrollTop(0)
を追加
- を試してみたものです。私は思ったかもしれませんが、このイベントはアンカー要素の実際のナビゲーションの前に発生しますので、直ちに元に戻します。
$(window).scrollTop(0)
〜$(document).ready()
ただし、このリスナーは、同じページのアンカーをクリックしても起動されません。- クリックイベントに
window.location.hash = target
またはwindow.location.href = target
を追加します。しかし、これは依然としてページの再送信を引き起こし、それは依然として「ジャンプ」します。 return false
を関数に追加します。これにより、URLにハッシュを追加することができなくなります。
これは本当に私を困惑させるものであり、どんな助けでも大歓迎です。
グレート提案が、ユーザがすでにいくつかをスクロールされた場合、これはまだページの先頭へジャンプします。 +1しようと思っていなかったからです。 –
このように終わりました –
これはなぜ機能しますか? "-TAB"はブラウザに何をしますか? – jenlampton