我正在建立一个列表系统,每隔3秒更新一次,从JSON文件中检查新数据。我也在添加效果fadeIn()和fadeOut()但是 每次循环时都会执行fadeIn()和fadeOut()(setInterval(list,3000);)。 我希望在数据已经附加后执行。抱歉我的英语不好。
注意: IT KEEPS ON BLINKING。在3秒内
list();
setInterval(list, 3000);
function list() {
$.getJSON('list.php',function(response){
var timeout = 400;
$("#list").fadeOut(timeout);
$('#list').fadeIn(timeout);
$('#list').empty();
for(var i = 0; i < response.list_count; i++){
var newElement = document.createElement('div');
newElement.innerHTML = response.list[i].firstname;
document.getElementById("list").appendChild(newElement);
}
document.getElementById("list_count").innerHTML = "" + response.list_count; + "";
});
};
答案 0 :(得分:1)
尝试添加变量并在显示元素时指定true(仅用于检查器是否已显示元素)
var displayed = false;
list();
setInterval(list, 3000);
function list() {
$.getJSON('list.php',function(response){
var timeout = 400;
if (displayed == false) {
$("#list").fadeOut(timeout);
$('#list').fadeIn(timeout);
displayed = true;
}
$('#list').empty();
for(var i = 0; i < response.list_count; i++){
var newElement = document.createElement('div');
newElement.innerHTML = response.list[i].firstname;
document.getElementById("list").appendChild(newElement);
}
document.getElementById("list_count").innerHTML = "" + response.list_count; + "";
});
};