Charge JavaScript une fois que la page est entièrement affiché
J'ai ajouté le code JavaScript à mon Drupal 7 thème, mais il échoue car il est prévu, car le css ne sont pas correctement appliquées lors de ma fonction est déclenché.
J'ai donc essayé un minimum de mise en œuvre pour vérifier ce qui se passe.
jQuery(document).ready(function($) {
alert("Start");
}
alert()
est déclenché avant que la page soit entièrement chargée (c'est à dire tous les titres sont manquantes).
Comment puis-je éviter cela?
Cette question ne semble pas lié à Drupal.
Il est lié à Drupal. C'est un site Drupal, JQuery est une partie de base de Drupal depuis le 6.x, et c'est à propos de Drupal comportements.
La question est clairement lié à Drupal et Drupal façon de gérer le "chargement de la page de l'événement" n'est pas l'habitude de jQuery (voir amateur barista de la réponse). S'il vous plaît, ramenez-le sur Drupal Réponse.
Il est lié à Drupal. C'est un site Drupal, JQuery est une partie de base de Drupal depuis le 6.x, et c'est à propos de Drupal comportements.
La question est clairement lié à Drupal et Drupal façon de gérer le "chargement de la page de l'événement" n'est pas l'habitude de jQuery (voir amateur barista de la réponse). S'il vous plaît, ramenez-le sur Drupal Réponse.
OriginalL'auteur pasine | 2011-04-12
Vous devez vous connecter pour publier un commentaire.
Afin d'exécuter un script après tout est entièrement chargée, vous souhaitez:
jQuery.prêt() s'exécute dès que le DOM est prêt, qui est généralement en avant les ressources externes ont chargé.
Je suis à l'aide de Drupal comportements (c'est pourquoi j'ai soumis cette question sur Drupal Pile d'Échange), mais en fait mon problème était effectivement liée à défaut de la fenêtre de chargement.
Ne pas 1) utiliser $ sans l'enveloppant dans un contexte externe, 2) l'utilisation de jQuery(window).charge(...) mais Drupal.les comportements. Voir les liens dans les amateurs de barista de réponse.
pourriez-vous expliquer ce que vous entendez par 1? Est-ce à voir avec évitant les collisions d'espace de noms?
Oui, c'est pour éviter les collisions de noms. Dans Drupal 7, jQuery est initialisé en mode de compatibilité et donc $ n'est pas l'objet jQuery, voir drupal.org/update/modules/6/7#javascript_compatibility. Tout cela est documenté dans le drupal.org/node/756722.
OriginalL'auteur Alex Weber
Lire sur Drupal 7 API JavaScript ici. Vous souhaitez donner de l'attention aux comportements de la section. Les comportements de faire la même chose que vous essayez de faire dans votre exemple, cependant, quand un Drupal chargement de la page, l'une des premières choses qu'il n'est d'instancier la
Drupal
objet. Cet objet est agrandi par chaque module avec comportements et attributs. Lorsque vous utilisez Drupal comportements au lieu de la norme de JQuery sur le document de prêt que vous avez accessible dans votre fonction JavaScript de toutes les propriétés et méthodes définies par d'autres modules.Ces tutoriels (Un, Deux) sont pour Drupal 6, mais ils vous donnent une bonne explication et une idée de ce que Drupal comportements.
OriginalL'auteur amateur barista