Hi, I want to observe all a tags on my page with a class of listelement. For some reason the code on this page does not work...it doesnt throw an error but it doesnt alert out var tot = $$(''a.listelement''); tot.each(function(lf) { lf.observe(''click'', function(event){ alert("hi"); }); }) any ideas? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Tobie Langel
2008-Jan-28 10:26 UTC
Re: adding on observe to elements selected by classname
try: var tot = $$(''a.listelement''); tot.each(function(lf) { lf.observe(''click'', function(event){ alert("hi"); event.stop(); }); }) oh... and make sure you are initiatting this on dom:loaded, not before! document.observe(''dom:loaded'', function() { var tot = $$(''a.listelement''); tot.each(function(lf) { lf.observe(''click'', function(event){ alert("hi"); event.stop(); }); }) }); that''s typically a good candidate for event delegation. (try googling if you''re not familiar with the concept). Best, Tobie On Jan 28, 11:16 am, elduderino <jamesfiltn...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:> Hi, > > I want to observe all a tags on my page with a class of listelement. > For some reason the code on this page does not work...it doesnt throw > an error but it doesnt alert out > > var tot = $$(''a.listelement''); > tot.each(function(lf) { > lf.observe(''click'', function(event){ > alert("hi"); > }); > > }) > > any ideas?--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
aha yes thats it.....i think it was maybe because i did have that codde outside of my dom:loaded code! Thanks On Jan 28, 10:26 am, Tobie Langel <tobie.lan...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> try: > > var tot = $$(''a.listelement''); > tot.each(function(lf) { > lf.observe(''click'', function(event){ > alert("hi"); > event.stop(); > }); > > }) > > oh... and make sure you are initiatting this on dom:loaded, not > before! > > document.observe(''dom:loaded'', function() { > var tot = $$(''a.listelement''); > tot.each(function(lf) { > lf.observe(''click'', function(event){ > alert("hi"); > event.stop(); > }); > }) > > }); > > that''s typically a good candidate for event delegation. (try googling > if you''re not familiar with the concept). > > Best, > > Tobie > > On Jan 28, 11:16 am, elduderino <jamesfiltn...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote: > > > Hi, > > > I want to observe all a tags on my page with a class of listelement. > > For some reason the code on this page does not work...it doesnt throw > > an error but it doesnt alert out > > > var tot = $$(''a.listelement''); > > tot.each(function(lf) { > > lf.observe(''click'', function(event){ > > alert("hi"); > > }); > > > }) > > > any ideas?--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
On Jan 28, 12:54 pm, elduderino <jamesfiltn...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:> aha yes thats it.....i think it was maybe because i did have that > codde outside of my dom:loaded code! Thanks > > On Jan 28, 10:26 am, Tobie Langel <tobie.lan...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > try: > > > var tot = $$(''a.listelement''); > > tot.each(function(lf) { > > lf.observe(''click'', function(event){ > > alert("hi"); > > event.stop(); > > }); > > > }) > > > oh... and make sure you are initiatting this on dom:loaded, not > > before! > > > document.observe(''dom:loaded'', function() { > > var tot = $$(''a.listelement''); > > tot.each(function(lf) { > > lf.observe(''click'', function(event){ > > alert("hi"); > > event.stop(); > > }); > > }) > > > }); > > > that''s typically a good candidate for event delegation. (try googling > > if you''re not familiar with the concept). > > > Best, > > > Tobie > > > On Jan 28, 11:16 am, elduderino <jamesfiltn...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote: > > > > Hi, > > > > I want to observe all a tags on my page with a class of listelement. > > > For some reason the code on this page does not work...it doesnt throw > > > an error but it doesnt alert out > > > > var tot = $$(''a.listelement''); > > > tot.each(function(lf) { > > > lf.observe(''click'', function(event){ > > > alert("hi"); > > > }); > > > > }) > > > > any ideas?There is an even shorter (more elegant) way to do this with prototype: document.observe(''dom:loaded'', function() { $$(''a.listelement'').invoke(''observe'', ''click'', function(li) { alert(''Hello world!''); }); }); Greetz, Wizz Invoke is a method uses the each method internally (I think...) but it allows you to specify the callback function on a single line. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---