Jquery - увеличить глобальную переменную - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть следующая реализация nicEditor, и я пытаюсь изменить поведение, как только я установлю var over = 1. Вот желаемое поведение:

  1. До длины текста = 5, мы получаем сообщение консоли: «до 5, сначала идти»
  2. Поскольку длина текста продолжает увеличиваться более 5, мы получаем сообщение: «более 5»
  3. Если затем мы уменьшим длину текста ниже 5,мы получаем сообщение: «ЯГГГГ, я понял!»

Прямо сейчас, если длина текста возвращается ниже 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 голосов
/ 26 апреля 2018

Удалите var over; из обработчика keyup, поскольку ваш дескриптор использует его как переменную, а не увеличивает глобальный.

0 голосов
/ 26 апреля 2018

Вы создаете теневую переменную over, так как вы делаете var over в своей функции keyup, что означает, что внутри keyup over всегда будет ссылаться на неглобальную.Удалите эту строку, и она будет работать

...