JQuery - problemas con la función load

   
Vista:

problemas con la función load

Publicado por Orlando David (5 intervenciones) el 14/08/2015 19:54:23
Buenas a continuación les presento mi problema. Estoy desarrollando una APLICACIÓN WEB en la cual uso jquery y para cargar las paginas la función load, puesto q deseo q todo se cargue en una sola pagina y lo único q se modifique es la región del centro, mi problema esta en q cuando elimino un elemento de una tabla, muestro al usuario un mensaje de confirmación para asegurarme q realmente desea borrar la fila, si el continua borra el elemento pero vuelve a salir el mensaje tantas veces halla sido cargada la pagina en cuestión mediante la función load alguien puede ayudarme con eso se lo agradeceré atentamente y en espera de sus respuestas, a continuación les dejo el método de eliminar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$("#tabla a.eliminar").click(function(e){
e.preventDefault();
if(confirm("Desea realmente Eliminar el elemento")==false){
return;
}
var nRow=$(this).parents('tr')[0];
var id= $('>td',nRow)[0].innerHTML;
var url=window.location.pathname+"/eliminar_plan";
 
$.ajax({
type:'POST';
url: url,
data:{'id':id}
}).done(function(msg){
alert(msg);
});
var url2=window.location.pathname+"/mostrar_planes";
$('.page-content-body').load(url2);
 
});
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Vainas

problemas con la función load

Publicado por Vainas (96 intervenciones) el 15/08/2015 17:28:11
Buenas:

No he podido reproducir tu problema... exactamente que mensaje es el que se repite?

cuando cargas la url de la linea 12 es exactamente la misma pagina? es decir es la pagina actual (imagino que no por que le agregas algo a la ruta actual).

Lo unico que he podido leer es que load carga tambien los script que esten dentro de la pagina a la que llamas. hay una forma de no cargar los scripts y es usando load así:

1
2
3
$('.page-content-body').load(url2+" #selector" );
o visto de otro modo
$('.page-content-body').load("load.html #selector");


cuando encuentra un espacio y un selector va a buscar dentro de la pagina que llama ese selector y solo carga eso con lo que no se ejecutan los scripts de esa pagina..... no se si podria ir por aqui el tema. revisa la documentacion de load en jQuery y la version que uses.

Tienes algo que te salga en la consola de chrome?

Ya comentaras algo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

problemas con la función load

Publicado por Orlando David (5 intervenciones) el 17/08/2015 15:03:24
muchas gracias por responder, el problema que tengo es que, cuando voy a eliminar un elemento de la tabla, me sale el cartel de confirmación tantas veces la pagina halla sido recargada mediante la función load. ejemplo cuando borro por primera vez un elemento sale el cartel de confirmación una sola vez, cuando borras otro elemento, sale el cartel 2 veces y así sucesivamente. saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

problemas con la función load

Publicado por xve (557 intervenciones) el 17/08/2015 18:55:14
Hola Orlando, tal como dice vainas, cuando cargas la pagina ($('.page-content-body').load(url2);), no cargaras también los scripts que hay dentro? Si dentro hay nuevamente el evento: $("#tabla a.eliminar").click(function(e){ se ira ejecutando tantas veces como lineas hayas eliminado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con la función load

Publicado por Orlando David (5 intervenciones) el 17/08/2015 20:58:52
muchas gracias por contestar, me podrías explicar una solución, gracias tentamente y en espera de tu respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con la función load

Publicado por Orlando David (5 intervenciones) el 17/08/2015 21:37:13
probé lo que me sugirieron, solo cargue la tabla, pero tengo el inconveniente que no me funciona ningún botón puesto que no cargue ningún script, así que no me sirve esa opción , si me pudiesen sugerir algo más,gracias de antemano y en espera de sus respuestas. aquí les dejo una captura de como es la pagina que cargo para que comprendan mejor.

captura
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

problemas con la función load

Publicado por xve (557 intervenciones) el 18/08/2015 09:57:34
Hola Orlando, como como lo tienes, la manera que se me ocurre mas sencilla, es eliminar el evento click, para que valga el que viene de nuevo en el load()... algo como:
1
2
3
4
...
$("#tabla a.eliminar").unbind("click");
$('.page-content-body').load(url2);
...

De esta manera, eliminar el evento click activo y cargas el nuevo nuevamente con el load.

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas

problemas con la función load

Publicado por Vainas (96 intervenciones) el 18/08/2015 09:52:58
Buenas:

No se lo que has querido decir xve con "se ira ejecutando tantas veces" pero me has hecho pensar en que lo que esta sucediendo puede ser que se este agregando el manejador del evento varias veces a cada boton con lo que al hacer click la siquiente vez puede que intente ejecutar la misma funcion pero repetida.

Con esto te hago pues la siguiente pregunta David: Cuando sale el mensaje de confirmacion? puedes reproducir los pasos? es decir

1. Haces click en eliminar
2. Sale el mensaje de confirmacion
3. Se elimina el registro
4. Sale el mensaje de confirmacion

Intenta no hacer $('.page-content-body').load(url2); sino utilizar algo como el identificador de la tabla $('#IdTabla').load(url2+" #IdTabla");

Sino lo otro que se me ocurre es que hagas uso de http://api.jquery.com/off/ para desanclar primero los manejadores y depues cuando carge lo anclas de nuevo.

Siento no poder ayudar mas pero es lo que podemos hacer desde aqui sin tener acceso al codigo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

problemas con la función load

Publicado por xve (557 intervenciones) el 18/08/2015 10:00:07
Hola Vainas, creo que los dos estamos hablando de lo mismo... cuando carga el contenido de la pagina con load(), vuelve a cargar el evento click, por lo que entiendo que por esa razón se ejecutan varias veces el evento click.

Ahora le he mostrado como eliminar el anterior evento click, haber que tal le funciona!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con la función load

Publicado por Orlando David (5 intervenciones) el 18/08/2015 20:56:29
Muchas gracias me funciono usando el selector dentro de la función load() , ahora solamente ocurre lo anterior cuando borro un elemento después de haber agregado uno nuevo, puesto que para crear una nueva cargo el formulario mediante la función load(), y después de adicionar vuelvo a cargar las tabla para mostrar con el nuevo elemento adicionado, por lo que a la hora de eliminar sale el cartel tantas veces como elemento haya insertado. He probado con esto $(¨*¨).off(); antes de cargar la pagina de la tabla una ves insertado un elemento y nada y no puede solo cargar una parte de la pagina porque si no no me carga los js y no me funcionan los botones.

atentamente y en espera de sus respuestas. Disculpen las molestias.

no hay forma de eliminar todos los js que se hallan cargado previamente?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar