Fonction d'appel avec setInterval en jQuery?
j'essaie de créer un appel d'intervalle à une fonction en jQuery, mais ça ne marche pas! Ma première question Est, puis-je mélanger JavaScript commun avec jQuery?
devrais-je utiliser setInterval("test()",1000);
ou quelque chose comme ceci:
var refreshId = setInterval(function(){
code...
}, 5000);
où mettre la fonction que j'appelle et comment activer l'intervalle? Est-ce une différence dans la façon de déclarer une fonction en JavaScript par rapport à jQuery?
4 réponses
Pour écrire le code, vous "doit" utiliser la dernière approche, avec une fonction de référence:
var refreshId = setInterval(function() {}, 5000);
ou
function test() {}
var refreshId = setInterval(test, 5000);
mais votre approche de
function test() {}
var refreshId = setInterval("test()", 5000);
est fondamentalement valide ,aussi (aussi longtemps que test()
est global).
notez Qu'il n'y a pas de "en jQuery". Vous écrivez encore le langage Javascript; vous utilisez juste quelques fonctions pré-faites qui sont la bibliothèque jQuery.
tout D'abord: Oui vous pouvez mélanger jQuery avec JS commun:)
la meilleure façon de construire un appel intervall d'une fonction est d'utiliser la méthode setTimeout:
par exemple, si vous avez une fonction appelée test () et que vous voulez la répéter toutes les 5 secondes, vous pouvez la construire comme ceci:
function test(){
console.log('test called');
setTimeout(test, 5000);
}
enfin vous devez déclencher la fonction une fois:
$(document).ready(function(){
test();
});
cette fonction est appelée automatiquement, après que tout le html est chargé.
jQuery est juste un ensemble d'helpers/libraries écrit en Javascript. Vous pouvez toujours utiliser toutes les fonctionnalités Javascript, de sorte que vous pouvez appeler n'importe quelles fonctions, aussi à partir de l'intérieur des callbacks jQuery. Donc les deux possibilités devraient aller.
setInterval (function () { updatechat(); }, 2000);
function updatechat () {alert ('hello world');}