WebサイトにいくつかのjQueryタブがあり、直接リンクできるようにタブを作成しようとしています。
つまり、ユーザーがタブのアンカーを含むURLを入力すると、ページが読み込まれるときに、最初にそのタブが表示されます。
私の元のjQueryコードはhttp://jqueryfordesigners.com/jquery-tabs/から取得したものであり、この機能は含まれていませんでした。元のコードは次のとおりです。
$(function () {
var tabContainers = $('div.tabs > div');
$('div.tabs ul.tabNavigation a').click(function () {
tabContainers.hide().filter(this.hash).show();
$('div.tabs ul.tabNavigation a').removeClass('selected');
$(this).addClass('selected');
return false;
}).filter(':first').click();
});
私はこれにコードを変更しました:
$(function () {
var tabs = [];
var tabContainers = $('div.tabs > div');
$('div.tabs ul.tabNavigation a').each(function () {
if (this.pathname == window.location.pathname) {
tabs.push(this);
tabContainers.push($(this.hash).get(0));
}
});
// sniff for hash in url, and create filter search
var selected = window.location.hash ? '[hash=' + window.location.hash + ']' : ':first';
$(tabs).click(function () {
// hide all tabs
$(tabContainers).hide().filter(this.hash).show();
// set up the selected class
$(tabs).removeClass('selected');
$(this).addClass('selected');
return false;
}).filter(selected).click();
});
この種の作業-URLにアンカーが含まれているページにリンクすると、関連するタブのコンテンツに移動しますが、他のタブも表示され(他のタブは非表示になりません)、タブも非表示になりません選択されました。
この例を見ることができます:
2番目のタブへのリンクはありません。最初のタブはデフォルトで表示されます。http://74.54.17.66/~innovarc/improve/success-stories/financial-performance/
2番目のタブに直接リンクしようとしています:http://74.54.17.66/~innovarc/improve/success-stories/financial-performance/#financial-performance
jQueryコードの何が問題なのかを理解しようとしましたが、理解できません。私は解決策の助けをいただければ幸いです