Jquery - 增加全局变量

时间:2018-04-25 21:56:47

标签: javascript jquery increment nicedit

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

  1. 在文本长度= 5之前,我们收到控制台消息:“5岁以下,先去”
  2. 随着文字长度继续增加超过5,我们收到消息:“超过5”
  3. 如果我们将文本长度减少到5以下,我们会收到消息:“YAYYYYY,我知道了!”
  4. 现在,如果文本长度回到5以下,我们将回到“5岁以下,先去”消息。我认为解决方案是将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!");
      }
    });
    

2 个答案:

答案 0 :(得分:2)

您正在创建一个阴影变量over,因为您在var over函数中执行keyup,这意味着在keyup中,over将始终引用非全局函数。删除该行,它将起作用

答案 1 :(得分:0)

var over;处理程序中删除keyup,因为您的句柄将此作为变量使用,而不是递增全局变量。