多个动态onclick按钮触发多次

时间:2017-01-09 03:27:01

标签: javascript jquery button unbind

我有几个动态生成的按钮。 要处理我一直在使用的那些按钮上的点击事件:

  window.onload=function(){
button1=document.getElementById("button1");
button2=document.getElementById("button2");
number1=document.getElementById("amount1");
number2=document.getElementById("amount2");
number1.value=0;
number2.value=0;
button1.disabled=true;
button2.disabled=true;

var medicine=angular.module("myModule1",[])
.controller("mycontroller1",function($scope){
        var subtotal={
            subtotal1:0,
            subtotal2:0

        }
    $scope.subtotal=subtotal;

        $scope.changed=function(){
        if(subtotal.subtotal1>0){
            button1.disabled=false;
        }
        else {
            button1.disabled=true;
        }

        }

    $scope.changed2=function(){
        if(subtotal.subtotal2>0){
            button2.disabled=false;
        }
        else{
            button2.disabled=true;
        }

    }

});


button1.onclick=function(){
    vex.dialog.buttons.YES.text="Purchase"
    vex.dialog.buttons.NO.text="Cancel"
    vex.dialog.confirm({
    message:"Are you sure you want to purchase this item?",
    callback: function(value){  
    var data=$("#medication-product-1").serialize();
    $.ajax({
        type:'POST',
        url:'./php/add-medicine-to-cart.php',
        data:data,

        success: function(response){
            console.log(response);
        }
    });
}
});
}
button2.onclick=function(){
    vex.dialog.buttons.YES.text="Purchase"
    vex.dialog.buttons.NO.text="Cancel"
    vex.dialog.confirm({
    message:"Are you sure you want to purchase this item?",
    callback: function(value){  
    var data=$("#medication-product-2").serialize();
    $.ajax({
        type:'POST',
        url:'./php/add-medicine-to-cart.php',
        data:data,

        success: function(response){
            console.log(response);
        }
    });
}
});

};
}

问题是,如果再次动态生成按钮。 click事件似乎绑定到文档或其他东西,因此再次单击该按钮将激活代码内部两次。如果再次动态生成按钮,则会触发三次。这是一个很大的问题,因为我的网站没有刷新。因此,有些情况会再次生成内容。

我可以用

$(document).on('click', '.button-class', function() {
    // code here
});

使用unbind,并将unbind应用于我所有动态生成的按钮会导致它们在多次生成时不再触发。

0 个答案:

没有答案