2017-02-22 55 views
0

我正在使用woocommerce在eshop上工作。ajax更新後的目標按鈕類

我有一個類別爲「single_add_to_cart_button」的添加到購物車按鈕,以及一個3種尺寸的變化選擇列表。

當我選擇一個不可用的大小時,我的「single_add_to_cart_button」按鈕獲得一個添加了「disabled」的類,並且當切換到可用大小時,該類將被刪除。

我想與jquery添加一個函數onclick在我的按鈕時,它有「禁用」類。

「禁用」類是由woocommerce自身通過Ajax添加的。

我發現一個woocommerce jQuery函數來檢查的變化選擇列表已經改變

$(".variations_form").on("woocommerce_variation_select_change", function() { 

我可以添加的console.log消息來檢查我的選擇發生了變化,即工作。

但我無法定位.disabled按鈕。每當我更改我的選擇列表時,我的「.disabled」按鈕上的點擊功能啓動我的功能。

在我看來,當我的CSS類改變了,我的jQuery代碼沒有看到它。

這裏是我的jQuery代碼:

$(".variations_form").on("woocommerce_variation_select_change", function() { 

console.log("change"); 

    $(".single-product .single_add_to_cart_button.disabled").click(function(){ 
     $('#modal_commander').modal('show'); 
    }); 

}); 

任何人可以幫助我嗎?

感謝

回答

0

不要另一個事件中綁定事件,會給你帶來什麼叫做多個事件綁定,在這種情況下,你每次選擇更改綁定一個新的事件處理程序。

取而代之,在$(document).ready()的內部或<body>的底部添加此部分,而不是在任何事件回調之外。它只會綁定一次事件。

$("body").on("click", ".single-product .single_add_to_cart_button.disabled", function() { 
    $('#modal_commander').modal('show'); 
}); 
0

只需使用此代碼。乾淨利落。當按鈕具有.disabled類並且您點擊它時,該函數將執行。

$(document).on.("click", ".single-product .single_add_to_cart_button.disabled", function(){ 
    $('#modal_commander').modal('show'); 
});