2011-03-27 65 views
15

可能重複:
How do I stop a web page from scrolling to the top when a link is clicked that triggers javascript?停止滾動到AJAX請求後頂部

我的瀏覽器滾動到Ajax請求後頂部,然後我用

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

到回滾動我的分區。 是我有辦法阻止它從一開始滾動頂部

+0

你的意思是說你希望它只在第一個Ajax請求上滾動到頂部,而不是在隨後的請求上滾動到頂部? – 2011-03-27 14:28:47

+2

你可以在觸發ajax調用的地方顯示代碼嗎? – 2011-03-27 14:28:56

+0

我不希望它滾動到頂部, – Miroo 2011-03-27 14:29:33

回答

29

你應該添加return false你的Ajax調用函數的末尾。或您的在線通話結束:

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

請求將#添加到我的URL,爲什麼? – Miroo 2011-03-27 14:35:05

+0

你將它設置爲'href'屬性給你的鏈接或者它是默認行爲。顯示您的代碼以瞭解發生了什麼。 – fl00r 2011-03-27 14:37:37

+0

你應該'返回false'來防止滾動。 – fl00r 2011-03-27 14:39:08

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

請求將#添加到URL,導致滾動到頂部 – Miroo 2011-03-27 14:35:43

7

如果要調用通過錨點擊阿賈克斯,試試這個:

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

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

連接使用jQuery(不與onclick屬性)事件處理程序和完全刪除href屬性。問題在於瀏覽器在點擊鏈接時正在導航。當使用onclick時,我發現這種情況很多,並且在阻止默認設置之前事件處理程序中存在錯誤。

解決這個問題的另一種方法是不使用< a>而是使用< span>。