Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/02/2012, 14h58   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 47
Points : 14
Points : 14
Par défaut Chargement du DOM // Efficatité du $(document).ready()

Bonjour,

Je fais actuellement du design (CSS/JS) sur un petit site. J'aimerai définir la hauteur d'une div en fonction de la hauteur d'une autre. Pour cela j'ai créé cette fonction
Code :
1
2
3
4
5
6
7
$(document).ready(function(){
 
    if($("#main").height() > $("#rightSidebar").height()){
            $("#rightSidebar").height($("#main").height());
 
    }
});
Malheureusement ma div #rightsidebar ne se paramètre pas avec une hauteur (height) égale à celle de la div #main. Pourtant lorsque je fais un alert au début du script comme ceci

Code :
1
2
3
4
5
6
7
8
$(document).ready(function(){
 
alert('HELLO WORLD');
    if($("#main").height() > $("#rightSidebar").height()){
            $("#rightSidebar").height($("#main").height());
 
    }
});
Ma div #rightsidebar prend bel et bien la taille de ma div #main. Pourquoi?
Moi j'en déduis que c'est parce que mon DOM ou alors ma div #main a besoin de temps pour se "charger" complètement. Du coup le alert lui donne ce temps et ma fonction peut ensuite fonctionner correctement. Ai-je raison?

Pourriez-vous m'éclairer sur ce genre de problème? (J'ai déjà rencontrer des problèmes similaire avec des chargement d'images.)

Merciiiiiiiiii d'avance.
liryks_6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 15h33   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 786
Points : 35 786
ready() va détecter la fin de chargement du DOM.
Ceci dit, si un élément contient des éléments dits remplacés, comme des images, des iframes ou des balises <object>, alors ces éléments n'ont pas fini de se charger lorsque le DOM est prêt.
Dans ce cas, il faut repasser au classique
Code :
1
2
3
$(window).load(function(){
    // Tous les éléments de la page ont été chargés
});
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 13h13   #3
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 47
Points : 14
Points : 14
Ok super merci ça marche... effectivement je n'avais jamais cherché à comprendre la différence entre le document.ready et le window.load. J'ai trouvé une courte explication ici si jamais :-)
liryks_6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h46.


 
 
 
 
Partenaires

Hébergement Web