Mi problema es el siguiente, tengo una página con index.html que posee un div denominado #carga en el cual vierto el contenido de la navegación del sitio, todo esto para evitar recargar la página una y otra vez.
Para lo anterior ocupo un script en jQuery que carga y descarga contenido en el div #carga. Todo parece funcionar adecuadamente, pero tengo 2 únicos enlaces que se abren en una nueva ventana, para lo cual añado una clase a su etiqueta <a>; compruebo si el vínculo posee la clase y si no la tiene hago que cargue la página en el div #carga
Todo funciona hasta que se clickea un vinculo para una nueva ventana; si se ha hecho click en otro vinculo, que cargue contenido dentro del div #carga usa ese click para abrir una ventana extra con el contenido del vínculo externo. Lo peor de todo es que toma en cuenta el número de clicks anteriores y puede llegar a abrir muchisimas ventanas nuevas.
Al principio pensé que era por la cache y establecí el valor en false, pero sigue el mismo comportamiento. También pensé que sería por una línea de código donde atraigo el mismo archivo .js que uso, y lo hago mediante getScript; pero ya deshabilité dicha línea de código y continúa sin funcionar.
Aquí les dejo mi código:
Código Javascript:
Ver original
$(document).ready(function() { $.ajax({ cache: false}); $("a").on("click", function(e){ e.preventDefault(); if ($(this).hasClass("ext")) { window.open($(this).attr("href"), "_blank"); } else { $.get($(this).attr("href"), function(data){ $("#carga").html(data); $("#carga").fadeIn().animate({height: "auto"}, 5000); /*$.getScript("js/refrescador.js");*/ }); } }); $(document).ajaxStart(function(){ $("#cargando").fadeIn(); $("#encerrar_cargando").fadeIn(); console.log("Se inicio ajaxStart"); }); $(document).ajaxStop(function(){ $("#cargando").fadeOut("slow"); $("#encerrar_cargando").fadeOut("slow"); console.log("Concluyó ajaxStart"); }); });
De antemano muchas gracias