首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次调用时,Jquery Ajax轮询都会跳到顶部

每次调用时,Jquery Ajax轮询都会跳到顶部
EN

Stack Overflow用户
提问于 2013-07-24 17:11:41
回答 1查看 309关注 0票数 1

我正在使用下面的函数来显示当前激活的gameList。现在的问题是,如果一个玩家正在浏览列表,如果执行了ajax调用,那么它会跳到div的顶部,我用ajax调用的响应替换了div。

如何避免跳转到div的顶部?或者任何其他应该实现的解决方案,以显示最新游戏的列表而不跳转到ajax调用?

代码语言:javascript
复制
(function pollServerForGameList() { 
        $.ajax({
            url:"<?php echo Yii::app()->createUrl('game/getGameList') ?>",
            data:{'id':<?php echo Yii::app()->request->getParam('id')?>},
            type:"POST",
            dataType:"html",
            success:function(response){
                $('.multiplayer').html(response);
            },
        });
        setTimeout(pollServerForGameList, 2000);
    }());

用单行响应一些数据和按钮来加入游戏。

代码语言:javascript
复制
    <ul>
    <li class="first">Math</li>    
    <li>Rookie</li>
    <li>Guest11</li><li>1</li>
    <li class="last"><b><a id="Join" class="greenBtn" href="/game/multiple?id=4&amp;gameid=20&amp;diff=2&amp;cat=4">Join the Game</a></b>
    </li>
    </ul>

多行响应将有多个<

EN

回答 1

Stack Overflow用户

发布于 2013-07-24 17:25:05

您可以尝试保存当前滚动位置,然后在插入后返回到该位置。

代码语言:javascript
复制
(function pollServerForGameList() { 
    //Save current scroll position
    var currPosition = $(window).scrollTop();
    $.ajax({
        url:"<?php echo Yii::app()->createUrl('game/getGameList') ?>",
        data:{'id':<?php echo Yii::app()->request->getParam('id')?>},
        type:"POST",
        dataType:"html",
        success:function(response){
            $('.multiplayer').html(response);
            //Return to the scroll position
            $(window).scrollTop(currPosition);
        },
    });
    setTimeout(pollServerForGameList, 2000);
}());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17829729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档