2013-04-01 4 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

Как вы освежаете DIV? – 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

Смежные вопросы