2011-03-27 16 views
15

Duplicar posibles:
How do I stop a web page from scrolling to the top when a link is clicked that triggers javascript?dejar de desplazarse al principio después de la petición AJAX

mis rollos navegador para subir después de la petición ajax Luego uso

$('html, body').animate({ scrollTop: $('#loadMore').offset().top }, 2000); 

para desplazarse de nuevo a mi div es Hay una manera que detener su desplazamiento a la parte superior desde el principio

+0

¿Quiere decir que desea que se desplace hasta la parte superior solo en la primera solicitud de Ajax, y no en solicitudes posteriores? –

+2

¿Puedes mostrar el código donde desencadena la llamada ajax? –

+0

No quiero que se desplace hacia arriba, – Miroo

Respuesta

29

se debe añadir return false hasta el final de su función ajax llamada. O al final de su llamada en línea:

<a href="#" onclick="someAjaxCall(); return false">Link</a> 
+0

la solicitud agrega # a mi URL, ¿por qué? !! – Miroo

+0

lo configura como atributo 'href' en su enlace o es un comportamiento predeterminado. Muestre su código para comprender lo que está sucediendo. – fl00r

+0

debe 'return false' para evitar el desplazamiento. – fl00r

1
/* AJAX stuff here */ 
$('html, body').stop(); 
+1

la solicitud agrega # a la URL, que causa el desplazamiento hacia arriba – Miroo

7

si llama al Ajax a través de anclaje clic, intente esto:

<a id="clicker" href="#">Click here to do ajax</a> 

$('#clicker').click(function(e) { e.preventDefault(); $.get("/myurl/") }) 
3

Acople el controlador de eventos con jQuery (no con el atributo onclick) y eliminar el atributo href por completo. El problema es que el navegador está navegando cuando se hace clic en el enlace. Veo que esto sucede mucho cuando se usa el clics y hay un error en el controlador de eventos antes de evitar el valor predeterminado.

Otra forma de solucionarlo con seguridad es no utilizar < a> sino más bien < span>.

Cuestiones relacionadas