由于方法的多个警报

时间:2014-04-17 18:43:57

标签: javascript function

我有一个动态表,它使用append接收新行。

在每个行中都有td,其中表示数字(数量)。

该号码的任何一侧都是一个按钮(加上&减号)。

每次按下该按钮,它都会使用function append附加。

由于对象存在于页面上时,仅测试按钮功能,我使用alert()来正确说明其功能,但是如果我创建了6行,则警报发生6次。

现在我理解为什么,因为我回想起控制数量的功能,因此它适用于每个新行,按下function append()按钮。

我遇到的问题:可以/应该为每一行刷新一个函数,而不会创建该函数的重复项。根据我的理解,我需要刷新每一个新行,否则按钮将不会存在'为了使该功能在该按钮上工作。

function append() {
    var adj_button_down = "<button type='button' class='btn btn-default btn-sm small-btn-quant-adj quant_adjust_down'><span class='glyphicon glyphicon-minus'></span> </button>";
    var adj_button_up = "<button type='button' class='btn btn-default btn-sm small-btn-quant-adj quant_adjust_up'><span class='glyphicon glyphicon-plus'></span></button>";                             

    $( "#till__tablepanel_table_"+tablenumber ).append( "<tr id='"+ fullReference+newrownum +"'><td>"+ newrownum +"</td><td>"+value_infoTitle+"</td><td>"+adj_button_down+"<span id='"+ fullReference+newrownum +"_price' class='wrap quantity'>1</span>"+adj_button_up+"</td><td>&#163;"+value_unitPrice+"</td><td>&#163;<span>"+value_unitPrice+"</span></td></tr>" );

quantityAdjust();

}

function quantityAdjust() {
    quantAdjustUp();
}

function quantAdjustUp(){
    $(".quant_adjust_up").click( function() {
        alert("test success");
    });
}

2 个答案:

答案 0 :(得分:1)

跟踪你的东西:

function append() {
    var adj_button_down = "...";
    var adj_button_up = "...";
    var newrow = $("...").append("...");
    quantityAdjust(newrow);
}

function quantityAdjust(newrow) {
    quantityAdjustUp(newrow);
}

function quantityAdjustUp(newrow) {
    newrow.find(".quant_adjust_up").click(function() {...});
}

答案 1 :(得分:0)

在重新分配之前先关闭点击处理程序:

$(".quant_adjust_up").off("click").on("click", function () {
      alert("test success");
});