Переменная, не изменяющаяся при нажатии jquery

#html #jquery

#HTML #jquery

Вопрос:

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

 var maxLength = 150;

jQuery(".outer p").html(function(index, currentText) {
  if(currentText.length >= maxLength) {
    return currentText.substr(0, maxLength)   '...<div class="see-more see-more-closed"></div>';
  } else {
    return currentText
  } 
});

jQuery(".see-more").click(function() {
       var maxLength = 1000;
});

<div class="outer">
   <p>
      Lorem ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam dictum, felis ac elementum consequat, lacus tellus cursus leo, ut imperdiet nisi lectus sed risus.
   </p>
</div>
 

Комментарии:

1. используйте var один раз в верхней части кода. Ваша проблема в том, что вы пытались присвоить значение локальной переменной (используйте то же имя, что и глобальная), поэтому глобальная переменная не изменилась

Ответ №1:

Вы изменяете область видимости переменной, объявляя ее как var в функции. Используйте это вместо:

 jQuery(".see-more").click(function() {
       window.maxLength = 1000;
});
 

или просто:

 jQuery(".see-more").click(function() {
       maxLength = 1000;
});
 

Зависит от области первого maxLength определения.

Комментарии:

1. это не работает, это потому, что мне нужно снова запустить первую функцию с этим щелчком мыши? Если да, то как мне это сделать?

2. да, если вы хотите изменить HTML-код после изменения переменной, вам необходимо запустить код, изменяющий html после изменения переменной

3. Я пробовал это, но это не сработало в конце функции, которую я включил: maxLength();

4. теперь я действительно не понимаю, в чем настоящая проблема…