我在访问AJAX函数中的循环变量时遇到问题。以下是我的代码。
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);
});
});
}
答案 0 :(得分:0)
该行
$('#sumbit_button'+x).bind('keyup paste', function(x){ ... }
表示您之前定义的变量x
在本地函数范围内被函数参数x
覆盖,实际上是keyup
或paste
事件。如果您想继续引用x
,请将function(x){...}
重命名为更合乎逻辑的内容,例如function(event) {...}
,或者如果您不需要,请不要使用函数参数function(){...}
阅读有关jQuery和Javascript事件处理程序如何工作的更多信息是个好主意。
<强>更新强>
您当前版本的脚本无法正常运行,因为您仍然将jQuery事件对象传递给verify_error
而不是x
。问题是您在声明事件处理程序时未传递x
,而是声明新变量,当前称为value
。从$('#sumbit_button'+x).bind('keyup paste', function(value){...}
删除变量值,只需将'x'传递给verify_error
,就像在脚本的第一个版本中一样。
答案 1 :(得分:-1)
您已x
function(x)
尝试将x
中的function(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);
});
});
}