2012-07-07 12 views
5

Tengo una página web que recarga algunos datos usando una publicación jquery cada 30 segundos, la publicación jquery recuperará los anclajes en forma de pestaña para que cuando el jquery actualice el anclaje siempre se coloca en el primer anclaje.Mover el navegador a la ubicación de anclaje sin hacer que la página se actualice

Digamos que tengo # anchor1, # anchor2 y # anchor3. Si el usuario está viendo # anchor2 y jquery reloads, su valor predeterminado es # anchor1. Antes de realizar el jQuery puedo comprobar para ver cuál es el ancla que el espectador está usando, y luego después de jQuery ha terminado Me continuación, seleccione el ancla que estaban mirando utilizando el código de abajo

document.location.href= "#anchor2"; 

Cuando utilizo el código anterior obviamente hace que la página se actualice para que funcione la función inicial document.ready para recuperar los datos, por lo que el temporizador nunca se usa, sino que siempre vuelve a cargar permanentemente el jquery, haciéndolo cada segundo más o menos en lugar de usar el javascript minutero.

¿Cómo puedo dirigir al usuario al anclaje que estaba mirando el usuario antes de volver a cargar el ajax sin hacer que la página se actualice?

Gracias por cualquier ayuda que pueda proporcionar.

Respuesta

13

utilizar la propiedad document.location.hash:

document.location.hash = "#anchor2"; 
+0

Gracias, esto parece tipo de trabajo. Por el momento, para las pruebas he codificado el nombre del ancla '' anchor2'' Parece que funciona la primera vez que se llama a la función, pero cuando jquery vuelve a cargar los datos, no vuelve a establecer el ancla, simplemente va al valor predeterminado como si el anclaje nunca se configurara como – Boardy

+0

si está realizando un 'POST/GET' completo en el servidor, entonces el JavaScript que usa para establecer el' hash' no funcionará porque la respuesta del servidor volverá a generar el página. si es una solicitud parcial 'AJAX', entonces esto debería funcionar como se anuncia ... – xandercoded

+1

Gracias por su ayuda, he logrado que funcione, pero por alguna razón necesito borrar el hash usando' 'document.location. hash = "" '' antes de configurarlo con el valor real, pero parece que funciona bien. – Boardy

Cuestiones relacionadas