我正在循环访问几个 <textarea>
元素并初始化一个 wysiwig 编辑器。
代码:
for( var i = 0; i <= 2; i++ ){
$( '#textarea' + i ).wysihtml5({
"events": {
"change": function() {
console.log( i ); // Can't access i here
}
}
});
}
但是我无法访问for循环变量i
在 change
事件函数。这是为什么,我该如何解决?
我在这里阅读了几篇“可变变量”帖子,但仍然无法弄清楚。
最佳答案
这会起作用。您需要做的是定义一个新的作用域,其中 i
变量不会更改。
for( var i = 0; i <= 2; i++ ){
(function(i) {
$( '#textarea' + i ).wysihtml5({
"events": {
"change": function() {
console.log(i);
}
}
});
})(i);
}
关于javascript - 当给出可变变量错误时如何访问正确的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19930289/