2017-04-06 45 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

比很多!忘了这个解决方案! –