Добавить 1, когда страница, прокрутите вниз
Я использую следующий код для добавления 1 к переменным js. но это всегда показывает один и тот же результат.
Javascript
$(window).scroll(function() {
var lmp = 5,
lma = 0;
if($(document).height() - 50 <= $(window).scrollTop() + $(window).height()) {
$('.div').append('<div></div><div></div><div></div><div></div><div></div>');
lmp++;
lma++;
console.log(lmp +" : "+ lma);
}
});
jsfiddle: - https://jsfiddle.net/n75epL5u/ проверьте результаты на консоли
3 ответа
Решение
Объявите ваши переменные вне вашего события прокрутки. В противном случае вы инициализируете их на каждом свитке.
var lmp = 5, lma = 0;
$(window).scroll(function() {
if ($(document).height() - 50 <= $(window).scrollTop() + $(window).height()) {
$('.div').append('<div></div><div></div><div></div><div></div><div></div>');
lmp++;
lma++;
console.log(lmp + " : " + lma);
}
});
Причина, почему ваш код не работает?
Каждый раз, когда вы прокручиваете переменные, объявляются.
Решение
Переместите объявление переменной за пределы функции.
var lmp = 5,
lma = 0;
$(window).scroll(function() {
if ($(document).height() - 50 <= $(window).scrollTop() + $(window).height()) {
$('.div').append('<div></div><div></div><div></div><div></div><div></div>');
lmp++;
lma++;
console.log(lmp + " : " + lma);
}
});
Пожалуйста, переместите ваши переменные за пределы обработчика события прокрутки. Кроме того, лучше обернуть ваш код в анонимную функцию, чтобы он не загрязнял глобальное пространство имен...
;(function() {
var lmp = 5, lma = 0;
$(window).scroll(function() {
if ($(document).height() - 50 <= $(window).scrollTop() + $(window).height()) {
$('.div').append('<div></div><div></div><div></div><div></div><div></div>');
lmp++;
lma++;
console.log(lmp + " : " + lma);
});
}());