我有以下Nicditor实现,一旦我设置了VAR = 1。这是所需的行为:
- 直到文本长度= 5,我们会收到控制台消息:"低于5,第一次去"
- 随着文本长度不断增长超过5,我们收到信息:"超过5"
- 然后,如果我们将文本长度缩短在5以下,我们会收到消息:" yayyyyy,我明白了!"
现在,如果文本长度返回到5以下,我们将返回"第5岁以下,第一个Go"消息。我认为解决方案是将VAR的价值更改为全局变量,但无法弄清楚如何做到这一点。。这是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!");
}
});
您正在创建一个阴影变量over
,因为您在 keyup
函数中执行 var over
,这意味着在键入内部,始终将始终引用非全球范围。删除该行,它将工作
从keyup
处理程序中删除var over;
,因为您的句柄将其用作变量,而不是增加全局。