Comment définir des variables globales dans jQuery/JavaScript?
J'ai une fonction ajax:
$.ajax({
url: 'http://localhost/process.php',
type: 'post',
data: '',
success: function(output) {
var animal = output
}
});
Je voudrais le var animal
être mis à l'échelle mondiale afin que je puisse l'appeler de n'importe où sur la page, même en dehors de l'ajax fonction du succès de rappel. Comment faire cela?
- Gardez à l'esprit que votre
$.ajax
appel est asynchrone. Je sens un "pourquoi est-animal indéfinis?" au coin de la rue. ;o) console.log(typeof animal);
//éventuellement renvoie undefined en raison de non initialisée.
Vous devez vous connecter pour publier un commentaire.
La déclarer en dehors de toute fonction ou jQuery construire
Si vous voulez qu'il soit une variable globale, puis le déclarer comme une variable globale. Généralement, vous faites cela en mettant
autour de la partie supérieure de votre .fichier js. Puis de toute référence à
animal
à l'intérieur de votre code sera la variable globale, sauf si vous utilisez le nom de quelque part d'autre dans le champ d'application.SI vous voulez le faire de façon dynamique.
jQuery.globalEval()
http://api.jquery.com/jQuery.globalEval/
Cette méthode se comporte différemment de l'utilisation normale JavaScript eval() en ce qu'elle est exécutée dans le contexte global (ce qui est important pour le chargement des scripts externes de façon dynamique).
Supprimer la
var
à faire de la variable globale.Note toutefois que le fait de travailler avec des variables globales est généralement considéré comme une mauvaise pratique, car ils sont très difficiles à déboguer.