Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera, seguinte:
Tenho uma div na home de um site e utilizo ajax pra exibir posts aleatórios dentro dessa DIV. O que eu queria fazer é trocar automaticamente os posts a cada 5 segundos, ou seja, reexecutar a função que pega os posts a cada 5 segundos. To utilizando o setInterval e saiu "quase" tudo bem, a não ser pelo fato de que ele ta dando refresh na div a cada segundo e eu não to conseguindo alterar esse tempo. O problema é somente esse, alterar o tempo do setInterval. Valeu, e segue o código:
$(document).ready(function reloadArtista(){
$.ajax({
url: 'http://meusite.com.br/posts/',
data: {},
success: function (data) {
$("#postsHome").html($(data).find("#divPost"));
setInterval(reloadArtista(), 5000);
},
dataType: 'html'
});
});
// postHome é a div onde meus posts serão exibidos
// divPost é a div que contém as informações do post, já que eu to pegando de uma página HTML com vários outros elementos
>
2 minutos atrás, Pita disse:
Tenta assim:
$(document).ready(
setInterval(function(){
$.ajax({
url: 'http://meusite.com.br/posts/',
data: {},
success: function (data) {
$("#postsHome").html($(data).find("#divPost"));
},
dataType: 'html'
});
}, 5000);
);
Da forma como você estava fazendo, depois de um tempo terá vários setInterval rodando, porque a cada requisição ajax cria um novo setInterval.
Da forma que eu fiz existe apenas um setInterval que fica fazendo requisições a cada 5 segundos.
Uma outra forma seria no seu código mudar de setInterval para setTimeout
Tentei dessa forma e apareceu o seguinte erro:
SyntaxError: missing ) after argument list
}, 5000);
dei uma ajustada lá, era ";" no lugar errado
Funcionou! Eu realmente não prestei atenção na lógica e tava criando um inception de setInterval kkkkkk
Muito obrigado!
Tenta assim:
$(document).ready(
}, 5000)