Gracias por tu sugerencia, lo tome en cuenta y sas, todo funciono!!.
Gracias!!


From: Hernan Fernandez 
Sent: Friday, June 18, 2010 11:39 AM
To: Grupo Ruby Argentina 
Subject: Re: [RubyArg] page.replace_html y el envio de script al navegadorpara 
ser ejecutados. NO COLOCA LOS SCRIPT EN EL DIV. Ayuda!


2010/6/17 Nestor Rodriguez <[email protected]>

  Que tal amigos de Ruby on Rails

  Estoy trabajando con ajax hace poco y me encontré con un dilema, el cual no 
logro resolverlo.

  Lo que pasa es que estoy intentando enviar por medio de .RJS una tabla con 
datos y cada fila llama a una función javascript diferente. 
  Mi .RJS contiene:
    page.replace_html("div_tabla_clientes" , :partial => "clientes_select")
    page.replace_html :notice, flash[:notice]
    flash.discard
  Leyendo vi que el page.replace_html genera un Element.update y gracias a 
firebug de mozilla veo que me envía los script
  Un pedazo de la respuesta del servido es:
  try {

  Element.update("div_tabla_clientes", "<div style=\"clear:both\"></div>
  <div id=\"div_tabla_clientes\">
    <table>
      <tr>
        <th>Cedula I.</th>    <th>1\u00ba Nombre</th>     <th>2\u00ba 
Nombre</th>     <th>1\u00ba Apellido</th>      <th>2\u00ba Apellido</th>
      </tr>    
        <tr>
          <td>
            <a onclick=\"a10();\" href=\"#\">
              3383051
            </a>
            <script type=\"text/javascript\">
              function a10(){
                $('solicitud_cliente_id').innerHTML = '<option 
value=\"10\">Celso Daniel Aquino  </option>'
              }
            </script>  
    </table>
    <br />
    <div class=\"pagination ajax\"><a href=\"/solicitudes/new?page=2\" 
class=\"prev_page\" rel=\"prev\">&laquo; Anterior</a> <a 
href=\"/solicitudes/new?page=1\" rel=\"start\">1</a> <a 
href=\"/solicitudes/new?page=2\" rel=\"prev\">2</a> <span 
class=\"current\">3</span> <span class=\"disabled next_page\">Siguiente 
&raquo;</span></div>
  </div>

  ");

  } catch (e) { alert('RJS error:

  '...

  \");'); throw e }


  El problema es que la tabla llega a remplazar el contenido del DIV 
especificado, pero por alguna razón, no coloca los script, sencillamente como 
que los omite a pesar de que el XHR recibió los scripts, esto hace que la 
llamada a las funciones en los enlaces no funcionen.

  Alguien puede ayudarme.

  Desde ya gracias!
  Atte.
  Néstor Rodríguez


  _______________________________________________
  Ruby mailing list
  [email protected]
  http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar




Hola Nestor
no tenes que enviar JS con el template, el browser no lo va a interpretar como 
js, salvo que envies solo JS y el content type del request pida eso.
Lo que tenes que hacer es usar una tecnica que se llama Event Delegation, la 
idea basica es "escuchar" mas arriba en el DOM por los clicks en la tabla y 
filtrarlos para que haga lo que necesites, entonces podes poner y sacar html y 
siempre va a andar, sino tenes que reconectar los eventos cada vez que metes un 
poco de html nuevo.


Veo que estas usando Prototype, yo no recuerdo mucho de esa libreria porque uso 
jQuery por lo que no te puedo pasar un ejemplo, pero en la documentacion de 
Prototype tiene que aparecer.


Saludos


--------------------------------------------------------------------------------


_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a