#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. теперь я действительно не понимаю, в чем настоящая проблема…