Le code fourni montre l'utilisation du framework Prototype (évocation de Event.observe plutôt que event.observe), qui permet justement de faciliter les traitements multiples par exemple:
$$('class').each(function(iterateur){iterateur.observe('click', fonction});
A noter que la fonction ne prend pas forcément de paramètres et n'oblige pas les parenthèses. Le $$ correspond à une fonction getElementsByClassName
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
Ce genre de trucs est plutôt nouveau pour moi alors je vais reformuler pour voir si j'ai bien compris.
$$('class') permet d'appliquer l,observateur d'événement sur tous les objets de classe "class".
l'itérateur, quant à lui, est égal à chacun des ID des objets ciblés.
Est-ce bien ça?
Oui, c'est ça :
Le $$ récupère effectivement tous les éléments de classe "class",
le each fait une boucle sur chacun d'eux
iterateur est la référence à l'élément en cours de traitement
Et dans tout ça, aucun élément n'a besoin d'id !
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
donc l'itérateur est un objet!
Je sent que ça risque de m'aider à optimiser la taille de mes documents HTML du genre liste de 8000 éléments...
'Event' est indéfini
QU'est-ce qui ne va pas avec ça?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Event.observe(window, 'load', function() { $$('cellblank').each(function(obj) {obj.observe('click', check(getPieceFromID(obj)))}); });
Si je met event en minuscule alors j'ai le message
'event' à la valeur 'Null' ou n'est pas un objet.
Je n'ai pas cerné la différence encore entre Event et event mais néanmoins je crois que c'est le 'Event' qu'il faut utiliser dans ce cas selon ce que j'ai pu voir lors de mes recherches.
excuse moi j'aurais du préciser :
function(iterateur){iterateur.observe('click', fonction}
sur ta méthode $$('cellblank') avant de faire ton each , as tu une collection ?
ensuite sur $$('cellblank').each(); essaye de faire un alert avec une propriété de tes objets
puis as tu un objet de type iterateur quelque part ??
tout ces points sont a vérifier pour cerner l'erreur
1 - Ok alors où dois-je spécifier la classe des objets ciblés?
2 - prototype-1.6.0.2.js
3 - J'ignore comment obtenir les propriétés de mes objets puisque je ne sais pas comment les récupérer jusqu'à maintenant. Si je comprends bien, il faudrait d'abord que j'aie déclaré un objet de type itérateur pour pouvoir m'en servir.
4 - Non, je n'ai pas déclaré d'objet de type itérateur... comment faire?
D'accord alors une seule question simple : Comment définit-on un itérateur?
Partager