javascript - Jquery - 增加全局变量
问题描述
我有以下 nicEditor 实现,并在我设置 var over = 1 后尝试更改行为。这是所需的行为:
- 直到 text length = 5,我们得到控制台消息:“under 5, first go”
- 随着文本长度继续增加超过 5,我们收到消息:“超过 5”
- 如果我们然后将文本长度减少到 5 以下,我们会收到消息:“YYYYYY,我明白了!”
现在,如果文本长度回到 5 以下,我们会回到“小于 5,先去”消息。我认为解决方案是将 var over 的值更改为全局变量,但无法弄清楚如何执行此操作。. 这是jsfiddle:http: //jsfiddle.net/jGLRn/182
HTML
JS: nicEditors.allTextAreas();
var over = 0;
$("div.nicEdit-main").keyup(function() {
var text_count = $(this).text().length;
if ($(this).text().length < 5) {
var text = $(this).text();
$('#id_desc').val(text);
console.log("under 5, first go");
} else {
var text = $(this).text();
$('#id_desc').val(text);
console.log("over 5");
$('.nicEdit-main').removeClass('error');
$("#id_desc-error").remove();
over = 1;
}
if ((over == 1) && (text < 5)) {
console.log("YAYYYYY, I got it!");
}
});
解决方案
您正在创建一个 shadow-variable over
,因为您是var over
在您的keyup
函数中创建的,这意味着在 keyup 内部,over 将始终引用非全局变量。删除该行,它将起作用
推荐阅读
- css - 当文本设置为空白时,如何保留文本贡献的高度
- javascript - 系统时间和日期不匹配。toLocaleTimeString
- java - 如何在不阻塞的情况下读取进程输出?
- python-3.x - Python 字符串中的 .title()
- ansible - 稳定 | bash 脚本的变量声明
- string - MIPS - 打印没有伪指令的字符串
- api - Marshmallow:如何为我的模式编码以接受不在表中但用于过滤的字段?
- python - 我的代码给出了无效的语法,但我不知道我的变量有什么问题
- python - Python中旧式和新式协程的调用/返回协议有什么区别?
- reactjs - 如何将全局滚动事件应用于多个 React 组件?