我正在尝试使用以下代码将onchange事件绑定到7个下拉列表.但是当bodysys1改变时,i = 8,所以这__CODE__是未定义的.
$(function () {
for (var i = 1; i <= 7; i++) {
$('select[id$="bodysys' + i + '"]').change(function () {
if (this.value == "99")
enabletextbox($('input[id$="bodysys' + i + 'spec"]')[0]);
});
}
}
Run Code Online (Sandbox Code Playgroud)
显然,这不是正确的方法.
这被称为最后一个唯一的问题,并使用闭包解决:
$(function () {
for (var i = 1; i <= 7; i++) {
(function (i) {
$('select[id$="bodysys' + i + '"]').change(function () {
if (this.value == "99")
enabletextbox($('input[id$="bodysys' + i + 'spec"]')[0]);
});
})(i);
}
}
Run Code Online (Sandbox Code Playgroud)
它创建了一个新的范围,因此当我在原始范围中进行更改时,它将不会在旧范围中更改.
| 归档时间: |
|
| 查看次数: |
1638 次 |
| 最近记录: |