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
in 
http://stackoverflow.com/questions/2794885/javascript-prototype-best-practice-event-handlers
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 at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.

Reply via email to