G2Petter Skrevet 5. mars 2008 Skrevet 5. mars 2008 (endret) Jeg driver og lærer meg litt Javascript, og bruker Prototype som rammeverk. Det er lett å gjøre f.eks. dette: Event.observe('someelement','click', somefunction); Det kaller funksjonen somefunction når elementet med id-en someelement trykkes på. Så er spørsmålet: er det mulig å gjøre det samme med klasser? Si at jeg har tre linker som alle skal fyre den samme biten javascript. Kan jeg gi dem en klasse og observere alle sammen, eller er jeg nødt til å gi dem forskjellige id-er, og opprette en Event.observe for hver av dem? Endret 8. mars 2008 av G2Petter
G2Petter Skrevet 8. mars 2008 Forfatter Skrevet 8. mars 2008 (endret) Jeg fikk det til. Dersom dette er en dårlig måte å gjøre det på er det fint hvis noen roper ut: function class_observer() { var classlinks = $$('.class') var len = classlinks.length; for (var i = 0; i<len; i++) { var link = classlinks[i]; var id = link.identify(); $(id).observe('click', do_stuff) } } Forklaring på de Prototype-spesifikke funksjonene jeg bruker: $$-funksjonen er Prototypes måte å finne et array med alle elementene som matcher argumentet. Kan ta flere argumenter for mer avanserte regler indentify() er en funksjon som returnerer id-en til et element. Dersom elementet ikke har noen id, lager den en. $(id).observe() Finner elementet med id-en fra forrige linje, og lytter etter hendelsen "click" på denne. Dersom noen klikker kaller den funksjonen do_stuff() Edit: la til kommentarer Edit: flyttet kommentarene utenfor koden. Ble rotete Endret 8. mars 2008 av G2Petter
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå