Mediante ajax agrego un elemento (tr) a una tabla, pero mi selector de jquery
Código PHP:
$("#tabla1 tr:last").after(response.html);
Como puedo lograrlo??
Gracias!
| |||
jquery obtenga elemento recien agregado por ajax Hola a todos: Mediante ajax agrego un elemento (tr) a una tabla, pero mi selector de jquery Código PHP: Como puedo lograrlo?? Gracias!
__________________ I am Doyle please insert code. |
| |||
Respuesta: jquery obtenga elemento recien agregado por ajax Código PHP: Pero luego el selector no reconoce al ultimo tr agregado
__________________ I am Doyle please insert code. |
| ||||
Respuesta: jquery obtenga elemento recien agregado por ajax Ese es ya un problema clasico. Yo a veces lo he solucionado haciendo un setTimeout("foo",300); Es decir, dandole 0.3 segundo de tiempo al script para que efectivamente el DOM se renueve antes de querer manipularlo. Me gustaría publicaras también "el selector que no reconoce al ultimo tr agregado". Toda la secuencia de la acción. |
| |||
Respuesta: jquery obtenga elemento recien agregado por ajax Gracias por las molestias. Al clickear un boton llamo a la 1° función (confirmDuplicatePeriod) Código PHP:
__________________ I am Doyle please insert code. |
| |||
Respuesta: jquery obtenga elemento recien agregado por ajax tras un click queres insertar otro tr luego del último en la tabla #lspAjaxPanel-periodList ? la primera vez funciona la segunda ya no? |
| ||||
Respuesta: jquery obtenga elemento recien agregado por ajax Fijate primero que la llamada devuelva relamente el codigo html deseado,. dataType: "json", en realidad no deberias declarar los datos como json puede que te de problemas por eso. agregate el error del $.ajax para tener seguridad de que entra al sucess y no da error error : funtion(e){alert(e)} |
| |||
Respuesta: jquery obtenga elemento recien agregado por ajax Tras un click debo insertar un nuevo tr luego del ultimo en la tabla. Me olvidé aclarar lo siguiente: siempre me agrega los tr nuevos, o sea que siempre actúa SUCCESS, pero va agregandolos al final del tr que apuntaba al principio. Ej: Código PHP: Código PHP:
__________________ I am Doyle please insert code. |
| ||||
Respuesta: jquery obtenga elemento recien agregado por ajax Bueno, yo no estoy habituado a programar como objetos. Lo que si, creo que no publicastes todas las funciones entonces es dificil seguir el flujo de tus llamadas. Igual, proba cambiar esto: setup.bindEvents(); Por esto: setTimeout("setup.bindEvents();",300); Y si funciona se confirma mi teoría: tu llamada se anticipa a la actualización del DOM. Suele pasar. |
| |||
Respuesta: jquery obtenga elemento recien agregado por ajax Intenté el setTimeout pero sigue sin funcionar, para mi el problema está en el selector que no reconoce el nuevo tr agregado por ajax, Código PHP:
__________________ I am Doyle please insert code. |
| |||
Respuesta: jquery obtenga elemento recien agregado por ajax ok solucionado, le saque el ; al 1° argumento setTimeout("setup.bindEvents()",300); Ahora funciona, pero resulta que he actualizado mi archivo js del proyecto, con mejoras sustanciales (hechas por otros)y me ha afectado otros metodos, si esto anduvo no lo toco mas!! Ahora me queda la duda si se solucionó por el settimeout o por actualizar el js Gracias por su ayuda!!!
__________________ I am Doyle please insert code. |
| ||||
Respuesta: jquery obtenga elemento recien agregado por ajax Fijate. Igual, desconociendo tu script, propongo que evalues usar live() en vez de esto: setup.bindEvents();//es un metodo que bindea metodos a elementos Así, cada elemento nuevo tendrá las funcionalidades asignadas. Creo. Vos dirás. |
| |||
Respuesta: jquery obtenga elemento recien agregado por ajax como es la estructura de tu json? podes postear la salida como texto asi vemos que es lo que estas recibiendo |
| |||
Respuesta: jquery obtenga elemento recien agregado por ajax setup.bindEvents() no lo puedo tocar, copio el response completo Código PHP:
__________________ I am Doyle please insert code. |
| |||
Respuesta: jquery obtenga elemento recien agregado por ajax esta mal tu json, los pares de clave/valos debenentre comillas y los valores de tus atributos html con comillas simples asi no da error con las comillas de inicio Código HTML: { "response": [ { "status": "true", "message": "<div class='lspEvent-message msgBox'><p class='success'>The semester has been duplicated successfully.</p></div>", "html": "<tr><td width='22%'>......................", "idInserted": "", "statusCode": "7028" } ] } json Código HTML: { "response": [ { "html": "<tr><td><% out.print(request.getParameter("para")); %></td><td>nada</td></tr>", } ] } el html y jquery Código HTML: <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <script> $(function (){ var i = 2; $('a').click(function(){ $.ajax({ url: "uno.jsp?para="+(i++), dataType: "json", success: function(data){ response = data.response[0]; $("table tr:last").after( response.html ); }, error: function(){alert("error")} }); }); }); </script> <style> tr {background-color:red} td{width:100px} </style> </head> <body> <a href="#">Insertar</a> <table> <tr><td>1</td><td>1</td></tr> </table> </body> </html> también se puede usar $("#latabla").append( response.html ); Última edición por Dany_s; 18/03/2010 a las 10:26 |
| |||
Respuesta: jquery obtenga elemento recien agregado por ajax Hola doylelives! Has conseguido solucionar el problema? Te lo pregunto porque yo tengo justa y exactamente el mismo problema que tu (aunque yo no uso AJAX). En un plugin que me estoy montando hay el siguiente código:
Código Javascript:
Ver original El código realiza como un sencillo slideshow de 3 numeros. Deberia insertar una fila al final de la lista al hacer click en la última fila de ésta, mientras elimina la primera. Y funciona bien... la primera vez. Pero luego ya no funciona más. De hecho funciona al hacer click a la penúltima fila, y luego a la antepenultima. Es decir, el problema supongo está en:
Código Javascript:
Ver original Como bien dices, parece que no detecta los elementos creados recientemente. También he probado con:
Código Javascript:
pero aún peor, ya que no funciona ni la primera vez.Ver original Espero que si has encontrado la solución me puedas hechar una mano. Muchas gracias! Última edición por marcarronnis; 09/07/2010 a las 18:17 |
Etiquetas: |