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

比很多!忘了這個解決方案! –