LOL Glad that helped. (I'm surprised I missed it on SO, but I've been busy.)
-- T.J. :-) On May 11, 5:40 pm, ncubica <[email protected]> wrote: > oooooooooooohhhhh!!! that was great thank a lot I will improve my > code, and yes I was watch each individual li. I will post the answer > inhttp://stackoverflow.com/questions/2794885/javascript-prototype-best-... > thanks T.J. > > On May 10, 12:45 pm, "T.J. Crowder" <[email protected]> wrote: > > > > > > > Hi, > > > If you really want to watch each individual `li` directly, then what > > you have seems perfectly straightforward. But in that situation, > > barring a really good reason to do it that way, I wouldn't use a > > handler on each `li`; I'd listen for clicks on the elementToUpdate (or > > the `ul` within it) instead with just a single handler: > > > $("elementToUpdate").observe("click", function(event) { > > var li; > > > // Find out which `li` was clicked: > > li = event.findElement("li"); > > if (li) { > > // Do something with the `li` > > } > > }); > > > Prototype 1.7 has a new feature to simplify that a bit: > > > $("elementToUpdate").on("click", "li", function(event, li) { > > // Do something with the `li`; note it's given as the second > > // argument to the function > > }); > > > ...where behind the scenes, Prototype is basically doing what I did > > above. You'll want the first version if you're still using 1.6 (and > > since 1.7 is still at RC1, I expect you probably are). > > > HTH, > > -- > > T.J. Crowder > > Independent Software Consultant > > tj / crowder software / comwww.crowdersoftware.com > > > On May 10, 4:09 pm, ncubica <[email protected]> wrote: > > > > Hi this question is more a consulting of best practice, Sometimes when > > > I'm building a complete ajax application I usually add elements > > > dynamically for example. When you'r adding a list of items, I do > > > something like: > > > > var template = new Template("<li id='list#{id}'>#{value}</li>"); > > > var arrayTemplate = []; > > > arrayOfItem.each(function(item, index){ > > > arrayTemplate.push(template.evaluate( id : index, value : item))}); > > > > after this I have two options add the list via "update" or "insert" > > > > ----- $("elementToUpdate").update("<ul>" + arrayTemplate.join("") + "</ > > > ul">); > > > > the question is > > > > how can I add the event handler without repeat the process of read the > > > array, this is because if you try add a Event before the update or > > > insert you will get an Error because the element isn't still on the > > > DOM. > > > > so what I'm doing by now is after insert or update: > > > > arrayOfItem.each(function(item, index){ > > > $("list" + index).observe("click", function(){ > > > alert("I see the world"); > > > })}); > > > > so the question is exist a better way to doing this?????? > > > > -- > > > You received this message because you are subscribed to the Google Groups > > > "Prototype & script.aculo.us" group. > > > To post to this group, send email to > > > [email protected]. > > > To unsubscribe from this group, send email to > > > [email protected]. > > > For more options, visit this group > > > athttp://groups.google.com/group/prototype-scriptaculous?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Prototype & script.aculo.us" group. > > To post to this group, send email to > > [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/prototype-scriptaculous?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Prototype & script.aculo.us" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group > athttp://groups.google.com/group/prototype-scriptaculous?hl=en. -- You received this message because you are subscribed to the Google Groups "Prototype & script.aculo.us" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en.
