
22.07.2018, 02:48
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 22.07.2018
Сообщений: 123
|
|
Помогите с переходом к tabs через href
Подскажите пожалуйста , есть страница с вкладками (tabs) на jquery, как через ссылку href перейти на нужную вкладку? вот сам код вкладок:
$('.menu li:first-child').addClass('active');
$('.tab').hide();
$('.tab:first').show();
$('.menu li').click(function(){
$('.menu li').removeClass('active');
$(this).addClass('active');
$('.tab').hide();
var activeTab = $(this).find('a').attr('href');
$(activeTab).show();
Последний раз редактировалось NeonMan, 22.07.2018 в 11:32.
|
|

22.07.2018, 10:39
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,137
|
|
NeonMan,
не плодите темы
jQuery(window).on('load', function() {
var hash = window.location.hash;
hash && jQuery("a[href='"+hash+"']").click()
})
|
|

22.07.2018, 11:12
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 22.07.2018
Сообщений: 123
|
|
Сообщение от рони
|
NeonMan,
не плодите темы
jQuery(window).on('load', function() {
var hash = window.location.hash;
hash && jQuery("a[href='"+hash+"']").click()
})
|
Спасибо за ответ, но не совсем понятно куда вставлять какое значение, например у меня есть меню в хедере на странице index.html, там я прописываю такой тег(ссылку) <a href="about.html">О компании</a>, about.html - это страница с вкладками (tabs), у каждой вкладки свой id (#tab1, #tab2 и т.д.), по умолчанию открыта только первая вкладка, но как попасть сразу на вторую вкладку? она закрыта по умолчанию через display: none и открывается только по клику на нее, через выше указанный мной jquery код
Последний раз редактировалось NeonMan, 22.07.2018 в 11:16.
|
|

22.07.2018, 11:22
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,137
|
|
Сообщение от NeonMan
|
<a href="about.html">О компании</a>,
|
Сообщение от NeonMan
|
var activeTab = $(this).find('a').attr('href');
|
по вашему коду ссылка должна быть с #
<a href="about.html#tab2">О компании</a>,
Сообщение от NeonMan
|
не совсем понятно куда вставлять
|
после кода владок добавить
строки 2 и 3
|
|

22.07.2018, 11:22
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,137
|
|
NeonMan,
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|

22.07.2018, 11:36
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 22.07.2018
Сообщений: 123
|
|
Сообщение от рони
|
по вашему коду ссылка должна быть с #
<a href="about.html#tab2">О компании</a>,
к сожалению ничего не происходит с таким путем в href="about.html#tab2", потому как она(вкладка) закрыта по умолчанию через display: none; и открывается только по клику через код js (отредактировал)
после кода владок добавить
строки 2 и 3
|
о каких строках идет речь?
|
|

22.07.2018, 12:31
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 22.07.2018
Сообщений: 123
|
|
Сообщение от рони
|
по вашему коду ссылка должна быть с #
<a href="about.html#tab2">О компании</a>,
после кода владок добавить
строки 2 и 3
|
Сделал вот так, но увы не переходит на нужную вкладку через href="about.html#tab2", может не там вставил эти две строчки?
$('.menu li:first-child').addClass('active');
$('.tab').hide();
$('.tab:first').show();
$('.menu li').click(function(){
$('.menu li').removeClass('active');
$(this).addClass('active');
$('.tab').hide();
var activeTab = $(this).find('a').attr('href');
$(activeTab).show();
var hash = window.location.hash;
hash && jQuery("a[href='"+hash+"']").click()
|
|

22.07.2018, 14:36
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,137
|
|
NeonMan,
строку 10 где потеряли?
$(function() {
$('.menu li:first-child').addClass('active');
$('.tab').hide();
$('.tab:first').show();
$('.menu li').click(function(){
$('.menu li').removeClass('active');
$(this).addClass('active');
$('.tab').hide();
var activeTab = $(this).find('a').attr('href');
$(activeTab).show();
});
var hash = window.location.hash;
hash && $("a[href='"+hash+"']").click()
});
|
|

22.07.2018, 15:23
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 22.07.2018
Сообщений: 123
|
|
Сообщение от рони
|
NeonMan,
строку 10 где потеряли?
$(function() {
$('.menu li:first-child').addClass('active');
$('.tab').hide();
$('.tab:first').show();
$('.menu li').click(function(){
$('.menu li').removeClass('active');
$(this).addClass('active');
$('.tab').hide();
var activeTab = $(this).find('a').attr('href');
$(activeTab).show();
});
var hash = window.location.hash;
hash && $("a[href='"+hash+"']").click()
});
|
При таком коде открывается через <a href="about.html#tab2"> сразу обе вкладки и слетает класс active и почему-то переносится на пукт меню со страницы index.html, если выставить#tab3 то открывается три вкладки. Может вы мне покажите рабочий пример с вкладками и переход на каждую из другой страницы, а я постараюсь переписать поведение тогда под рабочий пример.
Последний раз редактировалось NeonMan, 22.07.2018 в 15:32.
|
|

22.07.2018, 15:33
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,137
|
|
NeonMan,
может так?
$(function() {
$('.menu li').click(function(){
$('.menu li').removeClass('active');
$(this).addClass('active');
$('.tab').hide();
var activeTab = $(this).find('a').attr('href');
$(activeTab).show();
});
var hash = window.location.hash;
hash ? $("a[href='"+hash+"']").click() : $('.menu li:first').click()
});
|
|
|
|