tengo este ajax pestañas de navegación jQuery plugin que he creado mediante la ayuda de CSS-Tricks.com y la jQuery hashchange event plug-in (detecta los cambios de hash en los navegadores que don lo soporto).
El código es poco tiempo para publicar aquí, pero es algo como esto:
Parte 1) Cuando se hace clic en una pestaña, se pone el atributo href de esa ficha y agregarlo a la barra de navegadores de navegación como '#tab_name': window.location.hash = $(this).attr("href");
Parte 2) Cuando los cambios en la barra de navegación (cambio de hash), se hace el cambio href así: window.location.hash.substring(1);
(subcadena es conseguir sólo 'tab_name' sin el '#'), y luego llama a la función ajax para obtener la información para mostrar.
Quiero desencadenar automáticamente el plugin para cargar la primera pestaña cuando se accede a la página, por lo que al principio del código que puse:
if (window.location.hash === '') { // If no '#' is in the browser navigation bar
window.location.hash = '#tab_1'; // Add #tab_1 to the navigation bar
$(window).trigger('hashchange'); // Trigger a hashchange so 'Part 2' of the plugin calls the ajax function using the '#tab_1' added
}
Los probles es que funciona en FF, pero no en Chrome, quiero decir, todo funciona, pero parece que el $(window).trigger('hashchange');
no funciona porque no aparece la primera pestaña ...
¿Alguna sugerencia?
Nota: funcionó hace algún tiempo, pero de repente no (tal vez actualización de Chrome).
Bueno, el hashchange se define así: $ (ventana) .bind ('hashchange', function() {... – Jonathan
Encontré el problema, estaba llamando $ (ventana) .trigger ('hashchange') ; antes de que se definiera hashcnage en $ (ventana) .bind ('hashchange', function() {... ¡Gracias por señalarme la dirección! – Jonathan