function off() 取消对所有元素的点击
function off () cancel click for all elements
我有一段代码:
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 有关,它取消了所有其他元素的点击 "prevent"。
请指教如何做到这一点。谢谢
您可以使用:not()
and 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");
}
您可以像这样扩展 selector 不再具有属性 data-num="1"
的 select 元素:
jQuery(function($){
$(document).on("click", ".product-image-mobile .product-image[data-num!='1']", function (e) {
$(this).attr('data-num', 1);
e.preventDefault();
});
});
我有一段代码:
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 有关,它取消了所有其他元素的点击 "prevent"。
请指教如何做到这一点。谢谢
您可以使用:not()
and 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");
}
您可以像这样扩展 selector 不再具有属性 data-num="1"
的 select 元素:
jQuery(function($){
$(document).on("click", ".product-image-mobile .product-image[data-num!='1']", function (e) {
$(this).attr('data-num', 1);
e.preventDefault();
});
});