javascript - 当给出可变变量错误时如何访问正确的变量

标签 javascript jquery

我正在循环访问几个 <textarea>元素并初始化一个 wysiwig 编辑器。 代码:

for( var i = 0; i <= 2; i++ ){
    $( '#textarea' + i ).wysihtml5({
        "events": {
            "change": function() {
                console.log( i ); // Can't access i here
             }
        }
    });
}

但是我无法访问for循环变量ichange事件函数。这是为什么,我该如何解决?

我在这里阅读了几篇“可变变量”帖子,但仍然无法弄清楚。

最佳答案

这会起作用。您需要做的是定义一个新的作用域,其中 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/

相关文章:

javascript - 我下面提到的要求的正则表达式模式

javascript - 在滚动时,向下/向上滚动 100vh 一次

javascript - Node JS res.sendFile 不发送图像或目录

javascript - 我使用 Angular,我需要计算某人在页面上停留的时间

php - 与 MySQL 的连接速度更快?

javascript - 在多维 javascript 数组中查找唯一的条目,顺序重要取决于级别

javascript - 为 Canvas 内的圆设置动画

javascript - 类没有通过使用 react.js

jQuery 垂直对齐动画

javascript - UML:JavaScript 代码的序列图