0

我在访问 AJAX 函数中的 for 循环变量时遇到问题。下面是我的代码。

for (var x; x<=8; x++){
    $('#sumbit_button'+x).bind('keyup paste', function(value){
        var val = $(this).val();
        $.post('index.php', {val : val }, function(data){
            $('#sumbit_this_'+x).html(data);
            verify_error(value);
        });
    });
}
4

2 回答 2

0

线

$('#sumbit_button'+x).bind('keyup paste', function(x){ ... }

意味着您之前定义的变量x在本地函数范围内被函数参数覆盖,x实际上是keyuporpaste事件。如果您想保留对 的引用,请将其x重命名function(x){...}为更合乎逻辑的名称,例如function(event) {...},如果不需要,则根本不使用函数参数function(){...}

阅读有关 jQuery 和 Javascript 事件处理程序如何工作的更多信息是一个好主意。

更新

您当前版本的脚本也不起作用,因为您仍在将 jQuery 事件对象传递给verify_error而不是x. 问题是您在声明事件处理程序时没有通过x,而是在声明一个新变量,当前称为value. 从脚本的第一个版本中删除变量$('#sumbit_button'+x).bind('keyup paste', function(value){...} 并简单地将“x”传递给verify_erroras。

于 2013-04-26T04:48:41.747 回答
-1

你已经覆盖了x你的function(x)

尝试重命名xfunction(x)其他类似的名称function(y)或任何有意义的名称。

for (var x; x<=8; x++){
    $('#sumbit_button'+x).bind('keyup paste', function(){
        var val = $(this).val();
        $.post('index.php', {val : val }, function(data){
            $('#sumbit_this_'+x).html(data);
            verify_error(x);
        });
    });
}
于 2013-04-26T04:45:31.093 回答