首页 > 解决方案 > Jquery - 增加全局变量

问题描述

我有以下 nicEditor 实现,并在我设置 var over = 1 后尝试更改行为。这是所需的行为:

  1. 直到 text length = 5,我们得到控制台消息:“under 5, first go”
  2. 随着文本长度继续增加超过 5,我们收到消息:“超过 5”
  3. 如果我们然后将文本长度减少到 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!");
  }
});

标签: javascriptjqueryincrementnicedit

解决方案


您正在创建一个 shadow-variable over,因为您是var over在您的keyup函数中创建的,这意味着在 keyup 内部,over 将始终引用非全局变量。删除该行,它将起作用


推荐阅读