###疑問
jQuery のクリックイベントについて知りたいです。
以下の構造で.trigger_link
をクリックしても、太郎のサイトが開かないのですが、なぜでしょうか?
###該当のソースコード
.posted_user_name
をクリックしたら自サイトである太郎のプロフィールページをPJAXで開き、.outer_link
をクリックしたら外部サイトである太郎のサイトを開くという流れです。
a
の入れ子を防ぐべく.trigger_link
にクリックイベントを付与しています。
html
1<div class="item outer_item trigger_link"> 2 <img class="thumbnail" src=""> 3 <a class="outer_link" href="http://example.com" target="_blank">太郎のサイト</a> 4 <a class="posted_user_name">太郎</a> 5</div>
jQuery
1$( document ).on( "click", ".trigger_link", function(ev) { 2 ev.stopPropagation(); 3 4 // クリック要素に応じていろいろな処理 5 if( $(this).hasClass('outer_item') ){ 6 $(this).find('.outer_link').trigger('click'); 7 8 }else{ 9 10 } 11 12}); 13 14$( document ).on( "click", "a", function(ev) { 15 16 // 自サイト以外へのリンク 17 if( $(this).hasClass("outer-link") ) { 18 console.log('.trigger_link をクリックするとこの文は表示されるが、太郎のサイトが開かない'); 19 ev.stopPropagation(); 20 return; 21 } 22 23 // 自サイトのリンク 24 else{ 25 // PJAX処理が始まる 26 } 27 28});
###試したこと
console.log()
によって、.trigger_link
をクリックしたときにa
のクリックイベントが発生することを確認しました。そこまでいっているのになぜか太郎のサイトが開かないのです。
ちなみに.trigger_link
でなく普通にa
をクリックすると、きちんと太郎のサイトが開きます。
target="_blank"
を外しても変化ありませんでした。
原因は何が考えられますでしょうか?
回答1件
あなたの回答
tips
プレビュー