2016-11-17 2 views
0

外部リンクをクリックしたときにモーダルではなくカスタマイズされたレイヤーを表示するようにjQueryスクリプトを修正しました。ユーザーが「OK」または「Cancel」をクリックしてリダイレクトされるまで、リンクが配列内にあります。ページ上の別のリンクをクリックすると、問題が発生し、次にクリックしたすべての外部リンクが別々のタブに読み込まれます。つまり、「OK」または「キャンセル」をクリックした後にアレイをクリアする方法を理解できません。クリック後の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}} "]')' - 私はAngularがそれと連動していません。もしあなたが 'ng-href'を使っているなら、' not( 'a [ng-href]') ' – tymeJV

+0

@tymeJVを実行できます。なぜそれがAngularだと思いますか?同様に[tag:twig]でもかまいません。 – connexo

+1

a) "jQuery配列"のようなものはありませんb)あなたが提供したコードに配列アクセスはありません – Jamiec

答えて

0

so ...回避策が見つかりました。一度私はwindow.openコマンドのためのウィンドウ名( "_blank"ではなく)を指定してもうまくいきました。これについて別の(またはより良い)修正がある場合は、私に知らせてください。

$('#linkGo').click(function() { 
    $('#leaving').fadeOut(500); 
    window.open(window.open.location = external , "windowName"); 
}); 
関連する問題