Estoy ejecutando una instancia de Moodle que separa los contenidos de la página en una forma similar a una pestaña de carga diferida, donde los contenidos de una sección solo se cargan una vez que el usuario hace clic en el enlace (pero creo que permanecen cargados a partir de entonces).
Tengo funciones idénticas que quiero que se ejecuten en el contenido de cada pestaña, pero, por supuesto, los scripts cargados en los niveles $(window).ready y $(document).ready ya se ejecutaron. En este momento tengo secuencias de comandos duplicadas viviendo y cargándose individualmente desde cada pestaña, pero lo odio y siento que debe estar afectando el rendimiento.
¿Cómo puedo volver a ejecutar mis funciones en cada pestaña después de hacer clic en ellas? No quiero volver a cargar la página, simplemente provoque que los scripts vuelvan a ejecutarse. Dado que la URL de la página registra un fragmento de anclaje para cada enlace, creo que la respuesta es un evento de cambio de hashchange , pero no sé cómo escribirlo o si necesita un oyente. Soy tan nuevo en JS y jQuery fuera del estilo y las funciones básicas. Por ejemplo, he intentado
$(document).ready(function() { //attaching the event listener $(window).on('hashchange', function() { $('#item').addClass('myClass') }).trigger('hashchange'); });Me pregunto si hay una variable u otra sintaxis que deba incluir. ¡Muchas gracias por ver! Agradezco cualquier ayuda!