Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Mootools
Mootools Forum d'entraide sur le framework MooTools. Avant de poster : Tutoriels Mootools, FAQ MooTools, 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 30/01/2012, 13h47   #1
Invité régulier
 
Inscription : septembre 2009
Messages : 19
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 19
Points : 5
Points : 5
Par défaut Mootools IE7 Addevent

Bonjour à tous,

Me voila de nouveau avec une question, voila les parties de code :
Code :
<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 :
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.
slayess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 14h08   #2
Membre expérimenté
 
Avatar de buggen25
 
Inscription : août 2008
Messages : 510
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 510
Points : 595
Points : 595
Code :
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
buggen25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 16h51   #3
Invité régulier
 
Inscription : septembre 2009
Messages : 19
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 19
Points : 5
Points : 5
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.
slayess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 09h02   #4
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 695
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 695
Points : 5 790
Points : 5 790
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à ?
__________________
Elen Poukram - Isegoria - Sandawe
vermine est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 20h40   #5
Invité régulier
 
Inscription : septembre 2009
Messages : 19
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 19
Points : 5
Points : 5
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
slayess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 22h05   #6
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Bonsoir,
Citation:
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 :
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');
      });
    }
  });
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 16h43   #7
Invité régulier
 
Inscription : septembre 2009
Messages : 19
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 19
Points : 5
Points : 5
Petite erreur de vocabulaire

Je ne peux plus testé car j'ai changé de librairie.
Mais par contre
Si cela ne passai pas
Code :
  $('type_aff').addEvent('click', function(){...
Cela ne devait pas donner mieux ... non ?
Code :
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 :
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
slayess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 21h54   #8
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
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 :
1
2
3
oInput.addEvent('click', function(){
    oInput.setStyle( 'visibility', 'visible');
});
cela revient à faire/écrire
Code :
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 :
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.
NoSmoking 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 14h10.


 
 
 
 
Partenaires

Hébergement Web