【问题标题】:JQuery callback questionjQuery回调问题
【发布时间】:2010-12-20 17:44:02
【问题描述】:

我正在尝试为 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 时 i 都是 5,因为它调用的是全局变量。我不确定是否可以更改 i 的范围,或者是否有办法在更改函数中打印值。有什么想法吗?

提前感谢您!感恩节快乐!

安德鲁

【问题讨论】:

标签: javascript jquery scope


【解决方案1】:

回调函数都引用同一个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);
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多