当单击动态添加的按钮时,函数调用只工作一次


Function call only works one time when clicking a dynamically added button

好的,所以我有一个按钮是动态添加到我的HTML表单。当我单击此按钮时,下面的JQuery将运行。有一个函数调用checkLimit(),它基本上返回一个数字,所以我知道要显示哪个文本框。该函数第一次运行得很好,但第二次它只调用了checkLimit()并退出。它甚至不调用函数(我通过弹出警告来测试,你会看到这些被注释掉了):

JQUERY: $(document).ready(function()

for (var i = 0; i < 25; i++){
$("#Add_").on("click", "#plus_"+i, function(){
      checkLimit();
        if (checkLimit = 1){
        var txtbox = "<div id='Div_2_Int"+i+"'> <label> <br> </label> "
            + "<input type='text' id='Txtbox_2_Int_"+i+"' name=Txtbox_2_Int_"+i+ "'value=''>";

            $('.addSys').append(txtbox);
           }
        else if(checkLimit = 2){
        var txtbox = "<div id='Div_3_Int"+i+"'> <label> <br> </label> "
        + "<input type='text' id='Txtbox_3_Int_"+i+"' name=Txtbox_3_Int_"+i+ "'value=''>";
        $('.addSys').append(txtbox);
        }
});
}

Javascript函数:

var num4 = 2;
function checkLimit() {
//alert("test2");
    if(num4 >= 4){
        alert("Only 3!");
    }else if(num4 == 3){
            num4++;
            return 2;                
    }else if(num4 == 2){
            num4++;
            return 1;
    }
    }

if子句中的两个错误,例如:

if (checkLimit = 1){

将其替换为:

if(checkLimit()===1){

否则,保存函数的变量checkLimit不会被调用,而是用值1覆盖。另外,如果要比较值,请使用比较运算符("==="或"=="),而不是赋值运算符("=")。还要注意比较操作符之间的差异。

您没有将checkLimit();的返回值赋给变量。

Try: var checkLimit = checkLimit();

另外,如果你不传递任何参数并使用全局变量,该函数的意义是什么?