Prototype: problème avec "event"

cs_bumbo Messages postés 26 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 10 février 2010 - 8 févr. 2010 à 16:26
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 10 févr. 2010 à 17:52
Bonjour,

J'ai un problème avec le code suivant:


 var myArray = $('body').getElementsBySelector('[infobulle]');

   myArray.each(function(item) {
      item.observe('mouseover', function(event){
      if ( Event.element(event).readAttribute('tag')  != undefined ) { 
      bulle_montre( Event.extend(event), 1 );    }
      });


function bulle_montre(event, tempo){   
     if (tempo > 0) 
      bulle_timeout = setTimeout( function(){
            montre( Event.extend(event) );
           }, tempo );
    else 
      montre( Event.extend(event) );
          
}



Le but est d'afficher une bulle au bout de x secondes, sachant que l'élément qui déclenche l'action est variable

Le problème apparait lorsque je défini une tempo, il faut que je fasse suivre le déclencheur jusqu'a la fonction montre(). Avec firefox le code marche tres bien , Le code ne génère pas d'erreur avec IE7 mais ne fonctionne pas et avec IE8 j'ai une erreur au niveau de:

bulle_timeout = setTimeout( function(){
            montre( Event.extend(event) );
           }, tempo );


L'erreur est "membre introuvable" (et oui ca raconte pas grand chose...)

Si quelqu'un a une idée?

Merci
Tious

3 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
9 févr. 2010 à 18:34
Bonjour,
moi y a n'a pas connaître les fonctionnalité de PROTOTYPE, mais je dirais à la vue du code que tu perds la référence à event dans la fonction transmise par le setTimeout
A brut je rajouterai le passage à la function de event comme suit
bulle_timeout = setTimeout( function(event){
  montre( Event.extend(event) );
}, tempo );

sans aucune garantie de moi même
sinon il existe surement un forum prototype !!!
;O)
0
cs_bumbo Messages postés 26 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 10 février 2010
10 févr. 2010 à 08:19
Je viens d'essayer en rajoutant event, l'erreur retournée est "nodeType a la valeur null ou n'est pas un objet" et là c'est le code des fichiers prototype qui retourne l'erreur.

J'ai déjà regardé les forums fr sans succès donc je vais aller fouiller un peu sur les forums en anglais.

Merci tout de même, et si quelqu'un a d'autres idées je suis preneur...

Tious
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
10 févr. 2010 à 17:52
Bonjour,
montre nous ta fonction montre que l'on voit son fonctionnement, sans pour autant aller décortiquer le code prototype
Je note en passant que la nature des paramètres passés ne me semble pas cohérente
appel au début de
bulle_montre( Event.extend(event), 1 );
ensuite du déclare
function bulle_montre(event, tempo){
et tu utilises
montre( Event.extend(event) );
!!!!!!
;O)
0
Rejoignez-nous