我正在尝试为jquery中的不同回调函数分配不同的数字。
for (i=o;i<types.length;i++) {
$('#ajax'+types[i]+'Div').html('Loading...').load('searchAjax.php','new=u',function () { $(this).find('select').change( function() { AjaxDiv(i); } ) } );
}
每次运行这部分代码时,每次调用ajaxDiv时我都是5,因为它调用的是全局变量。我不确定我是否可以改变i的范围,或者是否有办法在更改函数中打印值。有什么想法吗?
提前谢谢!感恩节快乐!
安德鲁
答案 0 :(得分:3)
回调函数都引用相同的i
变量,并在循环结束时执行。
您必须捕获循环上的i
变量:
for (i=o;i<types.length;i++) {
(function (i) {
$('#ajax'+types[i]+'Div').html('Loading...').load('searchAjax.php','new=u',
function () {
$(this).find('select').change( function() { AjaxDiv(i); } )
} );
})(i);
}