IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Javascript et jQuery pas coopératif sous IE


Sujet :

jQuery

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 43
    Points
    43
    Par défaut Javascript et jQuery pas coopératif sous IE
    Bonjour,

    J'ai developpé à l'aide de jQuery un petit menu type accordéon pour un boulot perso.

    Tout mon script javascript fonctionne parfaitement sous Firefox, mais sous IE rien ne fonctionne et pourtant IE ne me donne pas d'erreur Javascript????

    Alors je vous donne quelques éléments :

    Adresse où vous pouvez voir ce que ça donne (sous firefox pour le moment) : http://www.aroweb-design.com/test/menuAccordeon/

    Le code javascript que j'utilise :
    http://www.aroweb-design.com/test/me...on/carriere.js

    A savoir que j'utilise un petit bout de script pour lancer la fonction qui se nomme "sousmenu" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript">
    $(window).load(sousmenu);
    </script>
    Je n'ai pas du tout idée de la provenance de ce non fonctionnement sous ie...

    Si vous avez des idées.

    Si ils vous manquent des choses pour mieux comprendre n'hésitez pas !!!

    Merci

    Tonio

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    A tester ...
    essaye de mettre cette portion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script type="text/javascript">
    $(window).load(sousmenu);
    </script>
    tout a la fin de ta page ( après tes éléments html ) ...

    sous ie6 j'ai un : 'sousmenu' est indéfinit, ce qui me fait penser qu'il doit il y avoir une instaciation de tes éléments avant le load de la page et donc impossible d'accèders a ceux-ci.

    Je ne promet rien , mais à essayer

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par le_chomeur Voir le message
    A tester ...
    essaye de mettre cette portion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script type="text/javascript">
    $(window).load(sousmenu);
    </script>
    tout a la fin de ta page ( après tes éléments html ) ...

    sous ie6 j'ai un : 'sousmenu' est indéfinit, ce qui me fait penser qu'il doit il y avoir une instaciation de tes éléments avant le load de la page et donc impossible d'accèders a ceux-ci.

    Je ne promet rien , mais à essayer
    Merci. J'ai essayé mais cela n'a rien changé, je suis toujours bloqué sous IE

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 43
    Points
    43
    Par défaut
    Pour info,

    J'ai trouvé d'où venez mon soucis sous ie :

    jQuery propose une methode qui se nomme "attr" qui permet de modifier un attribut (class, src, title) d'un element du dom, cette methode à plusieurs synthaxe :

    - Une qui ne marche pas sous IE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monElement.attr({class : 'manouvelleclass'});
    -Une qui fonctionne sous IE et Firefox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monElement.attr('class','manouvelleclass');
    Utilisant la première synthaxe au départ dans mon programme, IE n'apprécié pas du tout.

    PS : Intéressant pour débugger sous ie :
    http://www.debugbar.com/
    et
    http://www.ieforge.com/CompanionJS/HomePage

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Merci pour l'info
    et remerci pour les débuggers sous ie , si un modo pouvait rajouter ça dans la boite à outil ou quelque chose du genre ?

  6. #6
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut IE plus sensible que firefox
    Bonjour,

    Je m'insère dans cette conversation juste pour apporter encore une petite précision. Il se trouve que IE6 est plus sensible que Firefox à la syntaxe javascript.
    Si Firefox supporte quelques petites imprécisions, IE aucune !!!
    Finalement, c'est pas plus mal, ça nous oblige à coder correctement.
    Je vous livre un exemple :
    Code accepté sous firefox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $("input[@value=image]").toggle(function() {
               $(".stuff").animate({
                 height: 'hide',
                 opacity: 'hide',
               }, 'slow');
         }, function() {
               $(".stuff").animate({
                 width: 'show',
                 opacity: 'show'
               }, 'slow');
         });
    code accepté par les deux et donc IE6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $("input[@value=image]").toggle(function() {
               $(".stuff").animate({
                 height: 'hide',
                 opacity: 'hide'
               }, 'slow');
         }, function() {
               $(".stuff").animate({
                 width: 'show',
                 opacity: 'show'
               }, 'slow');
         });
    Quelle différence ? la virgule après opacity: 'hide' n'est plus là, elle est effectivement inutile puisqu'il n'y a pas d'autres paramètres... (Dur non !)
    Et je confirme, companionJS et la debugbar => quasi incontournables.

    Courage !

  7. #7
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut Au fait résolu or not résolu ?
    Au fait,
    Visiblement la question est résolue, non ? Peut-être, que le signaler serait apprécié par les modo...
    (non, c'est pas un coup de fayotage )

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Merci Elvan !
    Google est mon ami et m'a fait attérir sur ce topic. Je désespérai de comprendre pourquoi mes ptits effets Jquery ne fonctionnaient pas sous IE7.... C'était la virgule du animate

    Bon maintenant..... Voyons pourquoi Jquery foire quand lightboxJS (tourne avec Prototype) est activé. Sous IE, encore

    A bientôt

  9. #9
    Membre du Club Avatar de CactO_o's
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 98
    Points : 47
    Points
    47
    Par défaut
    Tout comme ptitchon je viens vous remercier pour ce post qui m'a moi aussi aider à faire marcher jquery sur IE.

    Merci à vous et bonne continuation !


    EDIT :

    Je retrouve tout de même un problème dans le cas ou je veux changer la valeur de background position avec jQuery (animate) sur IE...

    Lien

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Merci pour l'astuce de la virgule !!! Même 5 ans après !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Un code Jquery qui fonctionne sous une page HTML mais non pas une page XHTML
    Par élève_ingénieur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 10/07/2011, 00h34
  2. fonctions javascript ne fonctionnent pas sous Safari 3.1.*
    Par marion5515 dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 19/05/2008, 13h04
  3. [AJAX] code en javascript et php qui fonctionne sous FF et pas sous IE
    Par witch dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/01/2008, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo