javascript fenêtre.événement onload de la bonne utilisation de
J'ai ce code en boucle afin de réduire les DOM appels dans mon javascript, et de les réutiliser.
aarr = [];
for (var z=1; z<=10; z++) {
c = z-1;
aarr[c] = document.getElementById("a"+z);
}
J'ai été montré que si le code est exécuté avant que le DOM est complet, alors la matrice est nulle. Déplacer le script après le dernier code html de travail.
Donc, maintenant, je veux mettre ce code à l'intérieur de la window.onload
événement, afin de ne pas avoir à déplacer le code de script en bas de la page. Mais apparemment il ne fonctionne pas, car il semble que le tableau de la boucle est exécuté avant que le DOM est terminé.
window.onload=function(){
var aarr = [];
for (var z=1; z<=10; z++) {
c = z-1;
aarr[c] = document.getElementById("a"+z);
}
}
Aussi, j'ai essayé de supprimer le "var" pour supprimer un champ, sans faire une différence.
OriginalL'auteur Jamex | 2011-09-06
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également essayer cette approche, sans l'aide d'un cadre:
JSFiddle
Hey jamex.j'ai apporté quelques modifications à ur en boucle et il fonctionne très bien pour moi..voir le violon ajouté 🙂
Merci Richard, je vais essayer.
Aikoroje: la Prochaine fois fourche à jouer du violon. En outre:
(function(){})();
est inutile. La seule chose que vous avez à réaliser est que vous développez le[[scope]]
.OriginalL'auteur Richard A
Si vous pouvez utiliser jquery, vous pouvez utiliser le document prêt auditeur:
http://www.jquery.com
que par le commentaire ci-dessus, avez-vous essayé:
voir modifier à partir de ci-dessus
Merci, j'ai lu que le post d'avant et je suis en réalité se présente au travail pour firefox avec ce code, malheureusement, c'est à dire les versions sont tous de me donner des erreurs. Je suis en train de marcher à travers le script ligne par ligne.
OriginalL'auteur SublymeRick
MDN - fenêtre.onload
Je suppose que vous essayez d'appeler du code en dehors de onload. Voir ce violon
OriginalL'auteur Saxoier
Mieux d'utiliser une fonction sans pré-numérisation du dom pour créer un cache, de Pré-balayage n'est pas nécessaire lorsque vous utilisez une fonction simple avec un cache de construction. Avec jQuery, vous pouvez peut créer une fonction comme ceci (javascript natif de la méthode ci-dessous):
Ou sans cadre (javascript natif):
De sorte que vous pouvez faire:
Qui fait le tour.
Greetz, Erwin Haantjes
Le second est le code de la non-jQuery version, la fonction getObj
au-dessous de la ligne "Ou sans cadre (javascript natif):" qui est le vôtre
OriginalL'auteur Codebeat