У меня есть несколько вкладок 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-адрес, она приводит вас к содержимому соответствующей вкладки, однако другие вкладки также видны (она не скрыта, другие) и вкладка также не была выбрано.
Вы можете просмотреть пример этого:
Нет ссылки на вторую вкладку, первая отображается по умолчанию: http://74.54.17.66/~innovarc/improve/success-stories/financial-performance/
Попытка ссылки напрямую на вторую вкладку: http://74.54.17.66/~innovarc/improve/success-stories/financial-performance/#financial-performance
Я пытался понять, что не так с кодом jQuery, но не могу понять. буду признателен за помощь в решении