В обработчике готового документа вы можете проверить значение фрагмента и использовать JavaScript для отображения соответствующей вкладки.
$(document).ready(function () {
...
var tabId = window.location.hash; // will look something like "#h-02"
$(tabId).click(); // after you've bound your click listener
});
Редактировать по запросу:
$(document).ready(function() {
$(".tab-content").hide();
$("ul.tabs li:first").addClass("active").show();
$(".tab-content:first").show();
$("ul.tabs li").click(function() {
$("ul.tabs li").removeClass("active");
$(this).addClass("active");
$(".tab-content").hide();
var activeTab = $(this).find("a").attr("href");
$(activeTab).show();
return false;
});
$(window.location.hash).click(); // super-simple, no? :)
});
Редактировать 2:
Если вы хотите иметь возможность указать идентификатор элемента содержимого вкладки (например, h-02
на странице, на которую вы ссылаетесь), вам нужно вернуться назад, чтобы получить идентификатор соответствующей вкладки, чтобы активировать ее. Как это:
$(document).ready(function() {
var $tabContent = $(".tab-content"),
$tabs = $("ul.tabs li"),
tabId;
$tabContent.hide();
$("ul.tabs li:first").addClass("active").show();
$tabContent.first().show();
$tabs.click(function() {
var $this = $(this);
$tabs.removeClass("active");
$this.addClass("active");
$tabContent.hide();
var activeTab = $this.find("a").attr("href");
$(activeTab).show();
return false;
});
// Grab the ID of the .tab-content that the hash is referring to
tabId = $(window.location.hash).closest('.tab-content').attr('id');
// Find the anchor element to "click", and click it
$tabs.find('a[href=#' + tabId + ']').click();
});
Использование $.closest()
означает, что в хэше можно указать идентификатор самого .tab-content
(например, tabs-commenters
в вашем примере) или его потомка.
Я также сделал несколько других предложений по очистке выше. Не нужно повторно выбирать эти элементы DOM!