Utiliser Event.observe(window, 'load' ...)

  • Auteur de la discussion guillaumech
  • Date de début

guillaumech

Expert
Bonjour,

J'ai un petit problème venant de l'utilisation d'event.observe de la lib javascript prototype. Je vous montre le code :

[cpp]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<script type="text/javascript" src="fichier.js"></script>
<script type="text/javascript" src="prototype.js"></script>
</head>

<body>
(...)
</body>
</html>
[/cpp]

[cpp]
//Fichier.js
Event.observe(window, 'load', toto);

function toto () {
document.write('toto');
}
[/cpp]

Rien ne s'écrit. Alors n'y pas t'il un problème de page pas encore générée ? J'ai un peu du mal à comprendre ...
 

zeb

Modérateur
J'en sais rien :o
Si tu mets ta fonction inline pour pallier tout problème de "pas encore générée" :
[cpp]Event.observe(window, 'load', toto () { document.write('toto'); });[/cpp]
 

guillaumech

Expert
Toujours rien, regardes chez toi si ça fonctionne, chez moi rien ne marche :(
J'ai un autre soucis, je n'arrive pas à faire une boucle sur un event.observe

[cpp]
//Mes éléments sont créés avec chacun leur id (0,1,2,3,4....99)

for (var i=0 ; i<100 ; i++) {
Event.observe (i, 'mouseup', function (event) {
rajout (i);
});
}
[/cpp]

Or dans ma fonction rajout, lorsque je click sur les éléments, j'ai toujours i qui est égal à 100, sur tout les éléments, alors qu'il devrait être croissant au fur et à mesure des éléments. Je ne comprend pas, si quelqu'un voit l'erreur, je suis preneur.

Merci d'avance et content de te revoir Zeb :)
 

Meshi

Nouveau membre
Voilà ce que je ferais moi :

[cpp]
<div class="test" id="1" style="width: 400px;height: 300px;background: red;"></div>
<div class="test" id="2" style="width: 400px;height: 300px;background: blue;"></div>
<div class="test" id="3" style="width: 400px;height: 300px;background: green;"></div>
<div class="test" id="4" style="width: 400px;height: 300px;background: yellow;"></div>
<script type="text/javascript">
$A(document.getElementsByClassName('test')).each(function(e) {
Event.observe(e, "click", function(){ alert(e); });
});
</script>
[/cpp]

Ça t'évite de changer à la main le nombre d'éléments (100 dans ton exemple).

En espérant t'avoir aidé.
 

guillaumech

Expert
J'ai nettement progressé en javascript depuis le temps, donc ta solution a été trouvé il y a longtemps, mais merci quand même.

($$(.EltClass) récupére tout les éléments de la class EltClass)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 055
Membres
1 586 282
Dernier membre
Yannick3553
Partager cette page
Haut