Foros del Web » Programando para Internet » Jquery »

Problema con eventos jQuery

Estas en el tema de Problema con eventos jQuery en el foro de Jquery en Foros del Web. Hola Gente, escribo para el que lo vea y me pueda ayudar :D Tengo una tabla en la cual tengo un evento que filtra la ...
  #1 (permalink)  
Antiguo 19/07/2013, 14:34
 
Fecha de Ingreso: julio-2013
Ubicación: Queretaro
Mensajes: 1
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta Problema con eventos jQuery

Hola Gente, escribo para el que lo vea y me pueda ayudar :D
Tengo una tabla en la cual tengo un evento que filtra la información con la ayuda de XMLHttpRequest, JSP y AJAX. Funciona con un evento onkeyup escribiendo un valor en un campo de texto y con el AJAX va a otra pagina .jsp que me realiza una consulta y me trae la tabla con los registros que contienen en alguna parte de su nombre el valor escrito.

El problema viene cuando quiero obtener el valor de una celda en especifico al dar click sobre ella, la primera vez que se carga la tabla el metodo jQuery sí lo obtiene, pero cuando filtro la tabla ya no me trabaja el evento que obtiene el valor

No se que esté realizando mal o que debo de hacer. Muchas Gracias
Aquí abajo dejo el código de las paginas ya mencionadas.

-------


Este evento es el que va a la pagina cuentasTable.jsp que me devuelve la tabla ya filtrada y la coloca dentro del DIV que tiene el ID "tableCuentas"

Código HTML:
<script language="JavaScript" type="text/javascript">
// creando objeto XMLHttpRequest de Ajax
var obXHR;
try {
obXHR=new XMLHttpRequest();
} catch(err) {

try {
obXHR=new ActiveXObject("Msxml2.XMLHTTP");
} catch(err) {
try {
obXHR=new ActiveXObject("Microsoft.XMLHTTP");
} catch(err) {
obXHR=false;
}
}
}
 
function cargar(dep) {
    
var obDiv = document.getElementById("tableCuentas");
obXHR.open("GET", "cuentasTable.jsp?valBus="+dep);
obXHR.onreadystatechange = function() {
if (obXHR.readyState === 4 && obXHR.status === 200) {
obDiv.innerHTML=obXHR.responseText;
}
}
obXHR.send(null);
}
</script> 


Despues con este obtengo el valor de la celda a la que se le dio click.
Código HTML:
<script language="javaScript" type="text/javascript">
    
    $(document).ready(function(){
  $("#tablaCuentas2 tbody tr td").click(function(){
    alert($(this).text());
  });
});
</script> 

Y esta es mi tabla que viene del JSP


Código HTML:
<table id="tablaCuentas2" border='1' width='100%' >
    <thead>
        <tr>
            <td>Numero</td>
            <td>Cuenta</td>
            <td>Nombre</td>
        </tr>
    </thead>
    <tbody>
<%
    try{
        String sql;
        String valorBusqueda=null;
        valorBusqueda=request.getParameter("valBus");
        if(valorBusqueda==null){
            sql="SELECT * FROM CuentaEnc;";
        }
        else{
            sql="SELECT * FROM CuentaEnc WHERE  Nombre LIKE '%"+valorBusqueda+"%'";
        }
        
    BD bd = new BD();
    bd.conexionMet();
    ResultSet rs = bd.consultaBD(sql);
            while(rs.next()){
            out.println("<tr>");
            out.println("<td>"+rs.getInt("IdCuenta")+"</td>");
            out.println("<td>"+rs.getString("Cuenta")+"</td>");
            out.println("<td>"+rs.getString("Nombre")+"</td>");
            out.println("</tr>");
            }
            bd.desconectar();
    }
    catch(Exception ex){
    
    }
%>
    </tbody>
</table> 
  #2 (permalink)  
Antiguo 26/07/2013, 06:48
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Problema con eventos jQuery

Hola jCesar18, veamos, si entendi bien, lo que quieres es que al hacer click en algun elemento de la tabla te funcione correctamente y no a la primera vez q clickeas? si es asi debes hacer lo siguiente:

En la tabla que se carga en tu DIV debe haber un campo ID unico, este valor lo vas a concatenar con tu ID de la tabla q generaste algo asi en tu HTML:

El ejemplo lo hare con PHP

Código HTML:
Ver original
  1.         <tr id='prueba<?=$result['CAMPO_UNICO']' ?>  onclick="ejecutar('<?=$result['CAMPO_UNICO']' ?>'')>
  2.             <td>Numero</td>
  3.             <td>Cuenta</td>
  4.             <td>Nombre</td>
  5.         </tr>
  6.     </thead>

Aqui lo que hicimos fue agregar un ID al TR para que cada vez que hagas Click en alguna linea de la tabla se ejecute algun evento, y agregar una funcion para se ejecute lo que queramos hacer, tambien le concatenamos el valor de un campo unico de la tabla, un campo ID autoincrement por ejemplo, esto es para que el ID que vas a usar en JQUERY no se repita y sea unico.

Ahora en JQUERY hacemos esto:

Código Javascript:
Ver original
  1. function ejecutar(ID)
  2.         $("#prueba"+ID).click(function(){
  3.             alert($(this).text());
  4.         });
  5.     });

Aqui solo concatenamos la variable que recibe la funcion con el ID del TR, de esta manera te debe funcionar lo que quieres hacer

Espero te funcione

Saludos

Etiquetas: celda, filtrar, html, tabla, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:24.