accéder à la variable en dehors de $(document).prêt() & jquery
j'ai donc un .js fichier qui est inclus dans mon html
Si j'ai mis cela dans mon .fichier js,
$(document).ready(function(){
var siteRoot = $('.site-root').val();
alert(siteRoot);
});
le code d'alerte de la valeur correctement, mais si je fais cela:
var siteRoot = $('.site-root').val();
$(document).ready(function(){
alert(siteRoot);
});
il serait alerte indéfini au lieu
est-il un moyen d'avoir quelque chose qui est dans $(document).ready()
accéder à des variables en dehors de cela, puisque si je mets de la variable à l'intérieur de $(document).ready()
il ne serait pas accessible à partir d'autres fichiers js
OriginalL'auteur kamikaze_pilot | 2011-08-13
Vous devez vous connecter pour publier un commentaire.
Vous pouvez soit en faire un:
Ou mieux encore, utiliser une sorte d'espace de noms, comme ceci:
Là vous allez, c'est juste un moyen de mettre des trucs dans un objet vraiment
Facepalm. Oui, c'est un moyen très élégant pour conserver les objets sans avoir une longue liste de déclarations globales. Helpe beaucoup.
OriginalL'auteur Pablo Fernandez
La meilleure façon de le faire est de créer un vide variable globale ou créer un espace pour stocker les variables. Puis dans le document.prêt, il vous suffit d'ajouter votre
$('.site-root').val()
à cette variable.De cette façon, vous définissez la siteRoot variable une fois que vous connaissez .la racine du site existe et il est disponible dans le monde entier tout au long de l'application.
OriginalL'auteur Dave Long
La variable est disponibles dans
$(document).ready(
puisque c'est un mondial, mais vous êtes probablement obtenirundefined
, car aucune valeur n'est disponible pour.siteRoot
avant que le document est prêt. Juste essayer ceci:Maintenant, si vous vous attendez à une valeur à être disponible pour cette variable à l'échelle mondiale et pour utilisation immédiate dans d'autres parties de votre application, vous devrez re-travailler votre solution de telle sorte que d'autres parties de votre application aussi l'utiliser uniquement lorsque le DOM est prêt.
OriginalL'auteur karim79
Mais vous pouvez les partager en faisant quelque chose comme ceci:
Et tout au long de votre application, vous pouvez référencer via:
Vous pouvez également lazy load:
HTH.
return window.siteroot = $('.site-root').val()
OriginalL'auteur Brian Mains