1

以下の関数を使用して、現在アクティブな gameList を表示しています。ここでの問題は、プレーヤーがリストを通過していて、そこに ajax 呼び出しが実行されている場合、div の先頭にジャンプし、それを ajax 呼び出しからの応答に置き換えることです。

divの先頭にジャンプしないようにするにはどうすればよいですか? または、ajax呼び出しでジャンプせずに最新のゲームのリストを表示するために実装する必要があるその他のソリューションはありますか?

(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);
    }());

ゲームに参加するためのデータとボタンを含む単一行の応答。

    <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>

複数行の応答には複数の < があります

4

1 に答える 1

2

現在のスクロール位置を保存してから、挿入後にそこに戻ることができます。

(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);
}());
于 2013-07-24T09:25:04.947 に答える