在循环内初始化onchange事件-Javascript
我试图将onChange事件绑定到循环中的7个下拉列表中。但是,当任何下拉列表发生更改时,最后一个下拉列表的onChange事件总是被执行在循环内初始化onchange事件-Javascript,javascript,jquery,Javascript,Jquery,我试图将onChange事件绑定到循环中的7个下拉列表中。但是,当任何下拉列表发生更改时,最后一个下拉列表的onChange事件总是被执行 $(function () { for (var i = 1; i <= 7; i++) { $('select[id$="bodysys' + i + '"]').change(function () { if (this.value == "99") enabletex
$(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]);
});
}
}
$(函数(){
对于(var i=1;i而言,这称为最后一个问题,并使用闭包解决:
$(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);
}
}
$(函数(){
对于(var i=1;i
这样也行
$('select[id*="bodysys"]').each(function (index) {
$(this).change(function () {
if ($("option:selected", this).val() == "99")
enabletext($('input[id$="bodysys' + (index + 1) + 'spec"]')[0]);
});
});