2016-11-17 4 views
0

Я изменил сценарий jQuery, чтобы отображать настроенный слой вместо модального при нажатии на внешние ссылки. У меня есть ссылка, сидящая в массиве, пока пользователь не нажмет «ОК» или «Отменить» и не перенаправляется. Проблема возникает, если я нажимаю другую ссылку на странице, затем каждую внешнюю ссылку, на которую я нажимал, загружается на отдельных вкладках. При этом я не могу понять, как очистить массив после нажатия «ОК» или «Отмена».ясный массив jQuery после нажатия

$('a[href^="http"]').not('a[href^="{{ shop.url }}"]').click(function(e) { 
    var external = $(this).attr('href'); 
    e.preventDefault(); 

    $('#leaving').toggle('slow'); 

    $('#linkGo').click(function() { 
     $('#leaving').fadeOut(500); 
     window.open(window.open.location = external); 
    }); 

    $('#linkCancel').click(function() { 
     $('#leaving').fadeOut(500); 
    }); 
}); 
+0

'.not ('a [href^=" {{shop.url}} "]')' - Я готов поспорить, что Угловое не работает с этим. Если вы используете 'ng-href', вы можете сделать': not ('a [ng-href]') ' – tymeJV

+0

@tymeJV Почему вы думаете, что это угловой? Также может быть [tag: twig]. – connexo

+1

a) Нет такой вещи, как «массив jQuery». B) В коде, который вы предоставили, нет доступа к массиву. – Jamiec

ответ

0

так ... я нашел обходное решение. как только я указал имя окна (а не «_blank») для команды window.open, он работал нормально. если есть другое (или лучшее) исправление для этого, дайте мне знать.

$('#linkGo').click(function() { 
    $('#leaving').fadeOut(500); 
    window.open(window.open.location = external , "windowName"); 
}); 
Смежные вопросы