2017-02-22 54 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'); 
});