Prototype Event.observe doesn't work in partial

Dear all

I encountered a problem to generate a zebra stripe table. My program is no problem when the page is first load. But after the form_remote_tag submitted, the prototype script could not addClassName to the new table tr element. Any one know what is going wrong??

Furthermore, is it good practice for inline prototype script in _event_list.html.erb?

Thank you very much


index.html.erb ... ... <div id="event_list">     <%= render :partial => 'event_list' %> </div>

_event_list.html.erb ... ... code to generate the table ... ... <script type="text/javascript" charset="utf-8">     function stripe() {         var evens = $$('table#event_table tr:nth-child(odd)');         if(evens) {             evens.each(function(tr) {                 tr.addClassName('oddrow');             });         }     }     // document.observe("dom:loaded", stripe)     Event.observe(window, 'load', stripe, true); </script>

event_controller.rb     def index         ...         ...         if request.xml_http_request?             respond_to do |format|                 format.html {render :partial => "event_list"}             end         end     end

I suspect the Event.observe(window, 'load', stripe, true); is not executed after an AJAX call, and you will have to call your stripe() function explicitly.

Cheers, Nicholas