2013-04-01 93 views
3

我想获得一个div,刷新每2秒停止滚动回2秒刷新后我有PHP代码和JavaScript。我使用的JavaScript是:div滚动到顶部刷新后需要停止自动滚动到顶部

function at_Ticket_scrollBottom() 
{ 
    var objDiv = document.getElementById("cartTicket"); 
    objDiv.scrollTop = objDiv.scrollHeight; 
} 

function at_Tabs_Update() 
{ 

if(div_WPOSVar_IsVisible()) 
{ 
    //calling setTimeout without clearing any existing timeout can add multiple calls. 
    //IE the normal 2 second sequence, then call at_Tabs_Update two more times, and 
    //  now we have 3 timeouts set to call at_Tabs again, etc. 
    //This wouldn't be an issue except that we call at_Tabs_Update directly to cause 
    //  immediate refresh from many places. 
    //So clear the handle everytime to get rid of the last one we set. 
    clearTimeout(at_Tabs_Timer); 
    at_Tabs_Timer=setTimeout("at_Tabs_Update()", 2*1000); //every 2 seconds 
    return; 
} 
} 

所以,如果我向下滚动到它跳回一次刷新后顶部票的底部,所以我永远不能深究,并选择一个项目后刷新并在刷新之前进行编辑,如何停止自动滚动回到顶部。

+0

你是如何刷新单吗? – Alan

+1

我已添加显示刷新代码的部分,请让我知道您是否需要更多。 – Meef

+1

这实际上并未显示刷新过程中发生了什么,只是显示如何清除超时。 – invertedSpear

回答

1

来自疤痕的相关信息我可以在这里收集我认为你最好的选择是在刷新之前保存你当前的滚动位置,并在ajax调用后滚动到保存的位置。 使用jQuerys .scrollTop()函数来读取和设置滚动。

为了说明一些伪代码:

at ajax refresh function 
    var curPos $(element).scrollTop(); 
    ... do ajax call .. 
     ajax callback: $(element).scrollTop(curPos); 
+0

我不知道把这段代码放在哪里,我在这个程序中使用ajax php和javascript,但是不知道把这些信息放在哪里。 – Meef

+0

这不是真正的代码,但伪代码来说明要做什么。 – Dominik