2017-05-10 21 views
0

私はギャラリーを作成するためにWordpressプラグインを使用しています。イメージをクリックすると、モーダル効果が作成されます。その画像へのリンクをクリックして外部のページにアクセスする必要がありますが、画像を2回クリックする必要があります(最初のクリックの前にポインタがない)。 $(文書).click(関数()の理由は、ユーザーがページ内のどこにでもクリックした場合()モーダルを起動することを確認することです。クリックイベントを発生させるには2回のクリックが必要です

if ($("body").hasClass("page-id-2757") || $("body").hasClass("page-id-2752")) { 
    $(document).click(function() { 
     var imageLink = $("img[src='https://lacostadelalgodon.com/wp-content/uploads/2017/05/01-la-costa-del-algodon-1.jpg']"); 
     imageLink.css("cursor", "pointer"); 
     imageLink.on("click", function() { 
      window.open("http://www.vogue.com/article/this-spanish-label-makes-our-sleepwear-as-daywear-dreams-come-true"); 
     }) 
    }) 

答えて

1

あなたは別のクリックの内側にイベントハンドラをアタッチしています

削除もう一度クリックする上ハンドラ。したがって、その作業documentクリックハンドラ

if ($("body").hasClass("page-id-2757") || $("body").hasClass("page-id-2752")) { 
    var imageLink = $("img[src='https://lacostadelalgodon.com/wp-content/uploads/2017/05/01-la-costa-del-algodon-1.jpg']"); 
    imageLink.css("cursor", "pointer"); 
    imageLink.on("click", function() { 
     window.open("http://www.vogue.com/article/this-spanish-label-makes-our-sleepwear-as-daywear-dreams-come-true"); 
    }); 
} 

使用Event Delegationアプローチ

$("body.page-id-2757,body.page-id-2752").on('click', "img[src='https://lacostadelalgodon.com/wp-content/uploads/2017/05/01-la-costa-del-algodon-1.jpg']", function(){ 
    window.open("http://www.vogue.com/article/this-spanish-label-makes-our-sleepwear-as-daywear-dreams-come-true"); 
}); 
+0

私はそれが理にかなってないし、私は私が最初にすることを試みたが、それは動作しません確信して知っています。ここでギャラリーを見ることができます:https://lacostadelalgodon.com/press-en/リンクがある画像は「流行」です​​。私がそれを動作させる唯一の方法は、文書をクリックすることです。 – Sergi

+0

@Sergi、画像は動的に読み込まれますか?あなたはプラグインを使用していますか? – Satpal

+0

はい、Unit Galleryというプラグインを使用しています。そのため、HTMLにアクセスできないため、src attrで画像を選択します。そうしないと、はるかに簡単になります。 – Sergi

関連する問題