Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Draco Heroicus en 28 Diciembre 2012, 09:14 am



Título: jQuery sobre elementos generados
Publicado por: Draco Heroicus en 28 Diciembre 2012, 09:14 am
Hola, he generado una tabla en base a los datos y metadatos de una consulta SQL, uso JQuery y JSP, la cosa es la siguiente.

Puedo generar la tabla con cualquier consulta en automático sin problemas, el problema viene cuando quiero capurar un click sobre un <tr> para que me de su html

Código:
<table>
  <thead>
     <tr>
       <th>idzona</th>
       <th>nombre</th>
     </tr>
   </thead>
<tbody>
   <tr>
      <td>1</td>
      <td>Bosques</td>
   </tr>
</tbody>
</table>

La tabla la genero ve un JSON por jQuery.ajax(), y es un jQuery plugin que hize.

el succes de la consulta ajax es este
Código:
success:function(data){
                       
                      var bodyRow;
                      jQuery.each(data.cols,function(){
                          objTHeadRow.append("<th>"+this.name+"</th>");
                      });
                      jQuery.each(data.rows,function(){ //Rows del tbody
                          bodyRow="<tr>";
                          //alert(this);
                          jQuery.each(this.c,function(){
                              bodyRow+="<td>"+this.val+"</td>";
                          });
                          bodyRow+="</tr>";
                          objTBody.append(bodyRow);
                      });
                    }
                });


Título: Re: jQuery sobre elementos generados
Publicado por: #!drvy en 28 Diciembre 2012, 16:21 pm
Buenas,

Supongo que tu problema es que jQuery no reconoce el click puesto que es una carga ajax. Puedes utilizar la funcion on() para detectar el click incluso aunque este se cargue despues de un evento ajax... antes se utilizaba .live() pero ha sido marcada como obsoleta apartir de jQuery 1.7.

Código
  1. $("#idtabla").on("click", "tr", function() {
  2.   alert(this);
  3. });

http://api.jquery.com/on/


Saludos