No creo que esta pregunta haya sido planteada antes, al menos no de la manera en que la necesito. Estoy usando la función .load de jQuery. Tengo un problema al cargar solo fragmentos de página.Secuencias de comandos eliminadas con jQuery .load
Al utilizar algo como:
$('#content').load('loadTest.html');
Todos los scripts de carga loadTest.html bien. Sin embargo, cuando los fragmentos carga de la página como esta:
$('#content').load('loadTest.html #content');
los guiones son despojados a cabo antes de que el DOM está actualizando
Esto está claramente documentado en http://api.jquery.com/load/ que dice:
Nota:Cuando llamando a .load() utilizando una URL sin una expresión de selector con sufijo, el contenido se pasa a .html() antes de que se eliminen los scripts. Esto ejecuta los bloques de script antes de que se descarten. Sin embargo, si se llama a .load() con una expresión de selector adjuntada a la URL, las secuencias de comandos se eliminan antes de que se actualice el DOM, razón por la cual nunca se ejecutan. Un ejemplo de ambos casos se puede ver a continuación:
Entiendo que podría cargar externamente la secuencia de comandos que se puede utilizar en cualquier lugar, pero el hecho es que estoy usando un sistema ajax en toda la página donde todo está cargado dinamicamente. Así que realmente no tengo ganas de tener todas las funciones de JavaScript que escribiré alguna vez (100 en este momento) en archivos externos. Especialmente porque algunas de estas funciones de javascript están hechas de valores cargados desde una base de datos que no puedo contabilizar en un archivo .js.
¿Hay alguna solución para los scripts que se eliminan antes de actualizar el DOM? ¿Podría de alguna manera cargarlos manualmente? Cualquier pequeño ejemplo sería útil para mí.
¿Para qué sería bueno? O al revés: ¿por qué no escribes tu propia función de carga que hace exactamente lo que quieres? – hakre
@hakre Dado que todo el sitio está impulsado por Ajax, no siempre sé qué funciones de Javascript deben cargarse cuando se hace clic en un enlace. Simplemente no sé cómo volver a colocar manualmente las secuencias de comandos en .load se ha eliminado. – Galway