Вопрос по jQuery

Василий Колодин
На сайте с 17.12.2008
Offline
250
530

Суть в следующем.

Для перехода между страницами используется эффект затухания/появления.

$(document).ready(function() {

$("table.main").css("display", "none");
$("table.main").fadeIn(300);
$("a").not(".external").click(function(event){
event.preventDefault();
linkLocation = this.href;
$("table.main").fadeOut(300, redirectPage);
});
function redirectPage() {
window.location = linkLocation;
}
});

Эффект применяется для таблицы с классом "main" - в ней собственно все содержание страницы кроме шапки сайта. Получается эффект, что шапка остается на месте без перезагрузок, а страница меняется. Все работает отлично, но есть проблема с внешними ссылками с target="_blank" - они не открываются в новых окнах. Открытие происходит в текущем окне.

Как излечить сей недуг?.. :)

Спасибо.

Юзаю Бегет с 2013 года. Начни юзать и ты: https://beget.com/p64496/ru/hosting/virtual
M
На сайте с 20.01.2009
Offline
221
#1

только убрать _blank, html выше jquery

Мониторинг, анализ и проверка позиций сайта в поисковых системах (http://allpositions.ru/redirect/820)
[Удален]
#2

прервать работу обработчика при клике по исходящей ссылке и обработать клик отдельно

ДП
На сайте с 23.11.2009
Offline
203
#3

Попробуйте как-то так, в общем проверьте есть ли у ссылки атрибут target со значением _blank

$(document).ready(function() {

$("table.main").css("display", "none");
$("table.main").fadeIn(300);
$("a").not(".external").click(function(event){
if($(this).attr('target')!='_blank'){
event.preventDefault();
}
linkLocation = this.href;
$("table.main").fadeOut(300, redirectPage);
});
function redirectPage() {
window.location = linkLocation;
}
});
Василий Колодин
На сайте с 17.12.2008
Offline
250
#4
Дикий пионер:
Попробуйте как-то так, в общем проверьте есть ли у ссылки атрибут target со значением _blank
$(document).ready(function() {

$("table.main").css("display", "none");
$("table.main").fadeIn(300);
$("a").not(".external").click(function(event){
if($(this).attr('target')!='_blank'){
event.preventDefault();
}
linkLocation = this.href;
$("table.main").fadeOut(300, redirectPage);
});
function redirectPage() {
window.location = linkLocation;
}
});

Ваш код открывает второе окно, но теперь сайт, на который указывает ссылка, открывается в двух окнах - новом и текущем.

to Бурундук - логику я понимаю, а вот в технической реализации - я не силен.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий