Я использую некоторый код jQuery для создания вкладок, в которых содержимое страницы разбито (доступно для навигации из верхней части блока вкладок), и я собираюсь сделать следующее при переходе по ссылке «следующий» или «предыдущий» ( размещается в нижней части содержимого каждой вкладки):
- Страница для прокрутки вверх до верхней части блока вкладок (успешно реализована с помощью плагина ".scrollTo") в течение 750 мс
- После прокрутки вкладка для перехода к соответствующей вкладке «предыдущая» или «следующая» (идентифицируется по URL-адресу хэштега) - спустя 250 мс.
Используя следующий код:
$(".external_link").click(function() {
$.scrollTo(515, 750, {easing:'easeInOutQuad'});
setTimeout(changeTab($(this).attr("href")), 1000);
return false;
});
оба случая происходят одновременно в мес. Если бы кто-то мог пролить свет на то, что я делаю неправильно, я был бы очень благодарен.
Код полностью:
$(document).ready(function() {
$(".tab_content").hide();
$("ul.content_tabs li:first").addClass("active").show();
$(".tab_content:first").show();
$('.content_tabs li').each(function(i) {
var thisId = $(this).find("a").attr("href");
thisId = thisId.substring(1,thisId.length) + '_top';
$(this).attr("id",thisId);
});
function changeTab(activeTab) {
$("ul.content_tabs li").removeClass("active");
$(activeTab + '_top').addClass("active");
$(".tab_content").hide();
$(activeTab).fadeIn();
}
//check to see if a tab is called onload
if (location.hash!=""){changeTab(location.hash);}
//if you call the page and want to show a tab other than the first, for instance index.html#tab4
$("ul.content_tabs li").click(function() {
if ($(this).hasClass("active"))
return false;
changeTab($(this).find("a").attr("href"));
return false;
});
$(".external_link").click(function() {
$.scrollTo(515, 750, {easing:'easeInOutQuad'});
setTimeout(changeTab($(this).attr("href")), 1000);
return false;
});
});
Прав ли я, пытаясь сделать это с помощью setTimeout? Мои знания невероятно ограничены.