2017-12-20 5 views
0

target = "_ blank"でアンカーをクリックし、click call preventDefault()でjqueryをクリックすると、いくつかの処理を行い、次にclickイベントをシミュレートします。preventDefaultが呼び出された後にjqueryでクリックをシミュレートする方法

<a href="http://www.gogole.com" class="js-preview" target="_blank">Open link</a> 
jqueryの中

$('.js-preview').on('click', function (e) {   
    e.preventDefault(); 
    // do some stuff 
    $(this).trigger('click'); 
}); 

これは動作しません。どのようにそれを動作させるためにどのようなアイデア?

+1

いただきまし 'e.preventDefault()'の必要性? – Satpal

+0

私はajaxを呼び出し、いくつかのことをして、リンクにリダイレクトする必要があります。私は成功のためにそれをajaxで呼び出そうとしましたが、新しいタブでリンクを開く必要があり、window.openを使用できません – Roman

+2

デフォルトの動作をエミュレートする必要があります。 '$(this).trigger( 'click');を' location.href = $(this).attr( 'href'); 'に置き換えてください。 – delinear

答えて

0
window.open($(this).attr('href'), '_blank'); 

新しいタブを開きます。

+0

ブラウザは新しいページにリダイレクトすることを確認する必要があります。アンカーターゲット= "_ブランク"はこれを必要としません。私はtarget = "_ blank"機能をエミュレートする必要があります。あなたの答えは私の現在の解決策です – Roman

0

私はでpreventDefaultを避け、隠れアンカーにクリックイベントを呼び出すことによって、私の問題を解決しました:

$.ajax({ 
    ... 
    success:function(){ 
     ..... 
     $('.js-preview')[0].click(); 
    } 
}) 
関連する問題