Symfony 1.4とMysql DBを使用して構築されたWebアプリケーションがあります。私はより多くの結果を取得し、結果を追加するための要求を送信、ユーザーはページの一番下までスクロールしたかどうかを検出するために、このコードを使用しています:
のjQuery:
<script type="text/javascript">
var offset = 10;
var noMore = true;
$(document).ready(function(){
//load more feeds on page scroll end
$(window).scroll(function(){
if($(window).scrollTop() == $(document).height() - $(window).height()){
if($('.noFeeds').html()!='No feeds to show') // div shown when initially there are no feeds to show. In that case, we don't call the more feeds function
{
if($('#noMore').length) //check if the div that says there are no more feeds, exists or not
{
noMore = false; //if it does, set the flag to false so that the function to get more feeds is not called
}
if(noMore)
{
$('#loading').show();
offset = offset+10;
$.post("/user/getMoreFeeds?refferrer=home&offset="+offset+"&id="+<?php echo $userId;?>, {
}, function(response){
$('#moreFeeds').append(response);
$('#loading').hide();
});
}
}
}
});
</script>
を機能getMorefeedsでは、私は、オフセット値を使用してさらにフィードを取得するクエリを実行し、それを部分的に表示します。部分は応答として返されます。
PHP:
私はゆっくりとページをスクロールダウンし、私は適切にすべてを取得し、最後にメッセージが表示されif(count($feeds)>0)
{
// Show feeds
}
else
{
<div id="noMore" class="activity_post" align="center" style="color:#A8A8A8;">No more feeds to show</div>
}
「これ以上のフィードが表示されていないために、部分的内部で実行されるコードは次のようなものです"つまり、idが「noMore」のdivが表示されます。
しかし、ページをすばやくスクロールすると、ID「noMore」のdivが2回追加されていることがわかります。あなたはこの行動を理解するのを助けてくれますか?
ようにそれをやろう。 Acceptedと回答をマークすると、問題が解決されたことが示されます。 –
ああ!ごめんなさい。私はそれを知らなかった。私は[SOLVED]を追加すると助けになると思った。私は質問を編集します。 – gentrobot