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

Bibliothèques & Frameworks Discussion :

Mootools IE7 Addevent [MooTools]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Mootools IE7 Addevent
    Bonjour à tous,

    Me voila de nouveau avec une question, voila les parties de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="type_aff" type="text" readonly="readonly" onfocus="this.blur()" value="<?php echo $list_type_aff_lang[$_SESSION['type_aff']]; ?>" name="type_aff" style="position: absolute; right: 1px;" >
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script src="/js/mootools-core-1.4.2.js" type="text/javascript"></script>
     
    <script>
    window.addEvent('domready',function(){
    	if ($('type_aff')) $('type_aff').addEvent('click', function(event) {document.getElementById('type_affichage').style.visibility = 'visible';});
    });
    </script>
    Cela marche normalement sur FF IE9 Chrome mais sous IE7 j'ai le droit à :
    Object doesn't support property or method 'addEvent'

    Y a t'il une syntaxe particulière pour IE 7 ?

    Merci par avance à celui qui pourra m'aider.

  2. #2
    Membre éclairé
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Points : 709
    Points
    709
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script src="/js/mootools-core-1.4.2.js" type="text/javascript"></script>
     
    <script>
    window.addEvent('load',function(){
    	if ($('type_aff')) $('type_aff').addEvent('click', function(event) {document.getElementById('type_affichage').style.visibility = 'visible';});
    });
    </script>
    If you type Google into Google, you Can break the internet" - The IT Crowd

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Merci pour ta réponse mais le problème est toujours la.

    L'erreur se produit sur Donc il passe le
    De plus lorsque je liste les méthodes disponible, je ne voie pas "addEvent" dans la liste ( en mode IE7 seulement ).
    Cela me paraîtrait étrange que la méthode ne soit pas dispo sous IE7.

  4. #4
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Il faudra peut-être faire une gestion selon le navigateur et utiliser attachEvent quand c'est IE7. Mais ça me perturbe car addEvent est compris par IE7. J'ai testé tous les exemples sous ce navigateur sans souci.

    Cependant, je constate que la version 1.4.3 corrige certain bugs de la 1.4.2. Est-ce que ça changerait quelque chose à ce niveau-là ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Je ne comprend pas de trop. J'ai fais quelques modifs dans la page et cela fonctionne normalement à présent.

    Ce qui est bizarre c'est que window.addEvent passait.
    Puis en faisant un point d’arrêt dans le code les objets ne bénéficiaient pas de cette classe.
    Enfin bon ....



    Merci pour vos commentaires

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 050
    Points : 44 568
    Points
    44 568
    Par défaut
    Bonsoir,
    Ce qui est bizarre c'est que window.addEvent passait.
    Puis en faisant un point d’arrêt dans le code les objets ne bénéficiaient pas de cette classe.
    addEvent n'est pas une class mais une méthode.

    Tant qu'à utiliser mootools autant l'utiliser "complétement" .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    window.addEvent('domready', function(){
        var oInput = $('type_aff');
        if( oInput){
          oInput.addEvent('click', function(){
            $('type_affichage').setStyle( 'visibility', 'visible');
          });
        }
      });

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Petite erreur de vocabulaire

    Je ne peux plus testé car j'ai changé de librairie.
    Mais par contre
    Si cela ne passai pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      $('type_aff').addEvent('click', function(){...
    Cela ne devait pas donner mieux ... non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var oInput = $('type_aff');
        if( oInput){
          oInput.addEvent('click', function()....
    C'est vrai que je n'ai pas pris bon plis tout de suite, mais il faudrait alors suivre la méthode complètement et faire (non ? ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    window.addEvent('domready', function(){
        var oInput = $('type_aff');
        if( oInput){
          oInput.addEvent('click', function(){
            oInput.setStyle( 'visibility', 'visible');
          });
        }
      });

    C'est juste une question pour pas qu'elle me trotte dans la tête

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 050
    Points : 44 568
    Points
    44 568
    Par défaut
    le code que j'ai indiqué n'est là que pour montrer que lorsque l'on utilise une bibliothèque il est préférable de l'utiliser en plein.

    Ta version de code aurait dû marcher, l'erreur était sûrement ailleurs.

    En écrivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oInput.addEvent('click', function(){
        oInput.setStyle( 'visibility', 'visible');
    });
    cela revient à faire/écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oInput.addEvent('click', function(){
      this.setStyle( 'visibility', 'visible');
    });
    ce qui du point de vu de l'utilisation du this est préférable mais qui dans ce contexte ne veut pas dire grand chose attendu que si tu peux cliquer sur l'INPUT c'est qu'il est forcément visible.

    L'utilisation de l'écriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var oInput = $('type_aff');
    permet de mettre en "cache" l'objet qui sera appelé plusieurs fois dans la fonction et ce afin d'éviter l'appel à une fonction, rendant le même résultat, plusieurs fois.

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

Discussions similaires

  1. [MooTools] mootools : window.addEvent
    Par axelandre dans le forum Bibliothèques & Frameworks
    Réponses: 6
    Dernier message: 25/05/2009, 21h00
  2. [MooTools] AddEvent apres Requete ajax
    Par ofostier dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 15/12/2008, 14h29
  3. [MooTools] AddEvent apres Requete ajax (mootools)
    Par Cladjidane dans le forum Bibliothèques & Frameworks
    Réponses: 6
    Dernier message: 15/10/2008, 12h17
  4. [MooTools] Multibox bug IE7
    Par ChambreClaire dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 29/07/2008, 13h53
  5. [MooTools] new Element (submit) + onclick non fonctionnel sous IE7
    Par rebolon dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 28/04/2008, 16h38

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