Привет! Только начал изучать js. Всю голову сломал. Помогите! Страница: http://lp.medcentrperm.ru/ Скрипт (ajax) достает из бд информацию и выводит на страницу. Внутри есть условие:
if(i % 3 == 0) {
elem = document.createElement('div');
elem.className = 'clearfix';
parent.appendChild(elem);
}
Оно не корректно работает, когда происходит:
setTimeout(function() {
getComments(count);
}, 3000);
Так, будто значение i обнуляется.
Но при перезагрузке страницы работает нормально.
Класс clearfix нужен для корректной работы сетки bootstrap.
function getComments(count = 0) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('post', 'libs/get_comments.php', true);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send('count=' + count);
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
var data = xmlhttp.responseText;
if(data != 'empty') {
data = JSON.parse(data);
for(var i = 0; i < data.length; i++) {
var parent = document.getElementsByClassName('comm')[0];
var elem = document.createElement('div');
if(i % 3 == 0) {
elem = document.createElement('div');
elem.className = 'clearfix';
parent.appendChild(elem);
}
if(i % 2 == 0) {
var theme_head = 'size item-head item-head_theme_grey';
var theme_body = 'size item-body item-body_theme_grey';
}
else {
var theme_head = 'size item-head item-head_theme_green';
var theme_body = 'size item-body item-body_theme_green';
}
elem = document.createElement('div');
elem.className = 'col-md-3 col-md-offset-1';
parent = parent.appendChild(elem);
elem = document.createElement('div');
elem.className = theme_head;
parent.appendChild(elem);
var text = data[i].name;
var textNode = document.createTextNode(text);
elem.appendChild(textNode);
elem = document.createElement('div');
elem.className = theme_body;
parent.appendChild(elem);
text = data[i].email;
textNode = document.createTextNode(text);
elem.appendChild(textNode);
parent = parent.appendChild(elem);
elem = document.createElement('div');
elem.className = 'item-body-inner-padding';
parent.appendChild(elem);
text = data[i].comment;
textNode = document.createTextNode(text);
elem.appendChild(textNode);
var max = data[i].id;
}
count = max;
}
}
}
}
setTimeout(function() {
getComments(count);
}, 3000);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Почему здесь при модификации объекта из функции, не меняется исходный объект? Спасибо!!
Почему нельзя сравнивать callback с null? Отладчик ругается: