2012-07-07 20 views
8

Estoy usando History.js (click) con jQuery en mi código.¿Cómo puedo detectar que se haga clic en los botones Atrás/Adelante cuando se usa History.js?

Al cargar nuevos contenidos a través de AJAX que utilizo:

History.pushState({my:stateobject},"newtitle","supernewurl"); 

Esto parece funcionar ya que la URL se actualiza en el navegador.

Sin embargo, no lo consigo donde puedo conectar mi código cada vez que se presiona un botón hacia adelante o hacia atrás. ¿Qué método/evento se usa para esto?

+0

Solución aquí: http://stackoverflow.com/questions/10632483/pushstate-and-popstate-manipulating-browsers-history –

Respuesta

8

Es necesario vincular un controlador de eventos para el evento statechange, así:

$(window).bind('statechange',function(){ 
// Do something, inspect History.getState() to decide what 
}) 

Hay un fragmento de JavaScript que viene con History.js, que se puede utilizar para 'completa ajaxify 'un sitio completamente: https://github.com/browserstate/ajaxify

Eche un vistazo allí para obtener más inspiración.

+3

¿por qué se ha utilizado este downvoted? esto es lo correcto ... aunque probablemente haga algo como: 'History.Adapter.bind (window, 'popstate', function() { $ modalContext.modal ('close'); }); ' – chug2k

2

Pude utilizar el evento "onPopState" para activar mi código AJAX personalizado.

window.onpopstate = function(event) { 
    $(fellowModal).foundation('reveal', 'close'); 
}; 

Probé varias otras cosas y eso es lo que funcionó para mí.

Cuestiones relacionadas