2017-04-06 2 views
0

のクリックを解除:製品画像上機能をオフ()私は、コードの一部を持っているすべての要素

jQuery(function($){ 
    $(document).on("click", ".product-image-mobile .product-image", function (e) { 
     $(this).attr('data-num', 1); 
     e.preventDefault(); 
     if ($(this).attr("data-num") == 1){ 
      $(document).off("click", ".product-image-mobile .product-image"); 
     } 
    }); 
}); 

まずクリックは別の画像を表示し、別のクリックは、製品ページに移動します。 商品はajax経由で読み込まれます。 最初の製品イメージでは、このコードは正常に機能しています。私はそれが他のすべての要素に対して "防止"するクリックをキャンセルする$(document).offを懸念していると思う。

どうすればいいか教えてください。ありがとう。

+0

何ですか?詳細を教えてください –

+0

正確にドキュメントのクリックイベントをバインド解除することで達成しようとしているものは何ですか? –

答えて

0

:not()Attribute value selectorの組み合わせを使用すると、イベントをバインドできます。

$(document).on("click", ".product-image-mobile .product-image:not([data-num='1'])", function (e) { 
    $(this).attr('data-num', 1); 
    e.preventDefault();   
}); 

私はわからないが、私はまた、あなたはちょうどあなたのセレクタを拡張することができ

if ($(this).attr("data-num") == 1){ 
     $(event.target).off("click"); 
    } 
+0

たくさんあります!この解決策を忘れてしまった! –

0

を使用しないことができると思います。このような属性data-num="1"と、もはや選択の要素へ:

jQuery(function($){ 
    $(document).on("click", ".product-image-mobile .product-image[data-num!='1']", function (e) { 
     $(this).attr('data-num', 1); 
     e.preventDefault(); 
    }); 
}); 

も参照してください。attribute-not-equal-selector

+0

たくさんあります!この解決策を忘れてしまった! –

関連する問題