私はタブシステムを持っています。私は行きたいと思っています。 www.site.com/tab2(優先的にはSEO用)またはwww.site.com#tab2などです。javacriptで再ロードせずに各タブの特定のURL
私はwindow.locationのまたはwindow.history.pushstate(posted here)のような方法を試してみたが、私はそれらの機能にする方法を知りませんでした。
Javascriptを:
(function() {
var $tabsNav = $('.tabs-nav'),
$tabsNavLis = $tabsNav.children('li'),
$tabContent = $('.tab-content');
$tabContent.hide();
$tabsNavLis.first().addClass('active').show();
$tabContent.first().show();
$tabsNavLis.on('click', function(e) {
var $this = $(this);
$tabsNavLis.removeClass('active');
$this.addClass('active');
$tabContent.hide();
$($this.find('a').attr('href')).fadeIn();
var hash = window.location.hash;
var tab = parseInt(hash.replace('#',''), 10);
$tabsNavLis.eq(tab - 1).click();
e.preventDefault();
});
})();
HTML:
<ul class="tabs-nav">
<li class="active">
<a href="#1">TAB 1</a>
</li>
<li>
<a href="#2">TAB 2</a>
</li>
<li>
<a href="#3">TAB 3</a>
</li>
</ul><!-- end .tabs-nav -->
<div class="tabs-container">
<div class="tab-content" id="1">
CONTENT OF TAB 1
</div><!-- end #tab1 -->
<div class="tab-content" id="2">
CONTENT OF TAB 2
</div><!-- end #tab2 -->
<div class="tab-content" id="3">
CONTENT OF TAB 3
</div><!-- end #tab3 -->
'VAR $ tabsNav = $(」。タブ-NAV ')、 $ tabsNavLis = $ tabsNav.children(' 李 ')、 $ tabContent = $('。タブ - コンテンツ '); '? – niklabaz
クリックハンドラの後に追加します。そして、このコードがドキュメント内で実行されていることを確認してください( '$(function(){//ここのコード});)、またはhtmlの最後(bodyタグの直前)に実行してください。 – sic1
はいドキュメントの準備が整っているので、私の投稿で編集されていますか? 'e.preventDefault();'を削除する必要がありますか? – niklabaz