1

したがって、ユーザーがページをスクロールしてより多くの投稿を読み込むたびに、これが発生します。

それは使用しています

$("#next-paginav")[0].click(); 

それは「クリック」しているアンカーだからです。

$(document).ready(function() {
    $(document).scroll(function (e) { 

        var intBottomMargin = 300; 


        if ($(window).scrollTop() >= $('main-content').height() - $(window).height() - intBottomMargin) {


             setTimeout(function(){ $("#next-paginav")[0].click(); }, 800);
        }

    });
});

仕事に就けないディペッシュのコード。

$(document).ready(function() {
    $(document).scroll(function (e) { 

        var intBottomMargin = 300; 


        if ($(window).scrollTop() >= $('main-content').height() - $(window).height() - intBottomMargin) {


             setTimeout(function(){ 
             $("#next-paginav")[0].one('click',function() {  });

              }, 800);


        }

    });
});

問題は、投稿が読み込まれる前に 2 回、3 回、4 回起動するほど高速に起動することです。これは、ライブ サーバーで非常に多くのリクエストを行うという事実を除けば、あらゆる種類の問題を引き起こし、時々スキップします。投稿以上。一度だけ発射する方法はありますか?

4

4 に答える 4

1

.one()jQuery ハンドラを使用できます。

説明:要素のイベントにハンドラーをアタッチします。ハンドラは要素ごとに最大 1 回実行されます。

Official Document

$("#next-paginav")[0].one('click',function() {  });

.off()ハンドラーも使用できます。

$("#next-paginav")[0].click(function(){
  $(this).off(event);
});
于 2013-04-01T05:18:42.777 に答える
0

これで試してください

    $("#next-paginav")[0].one('click',function (e) { 

または、「ライブ」で試すことができます

    $("#next-paginav")[0].live('click',function (e) { 

「ライブ」メソッドはjquer1.7から非推奨になっているため、「on」メソッドを次のように使用できます

    $("#next-paginav")[0].on('click',function (e) { 
于 2013-04-01T05:18:00.110 に答える
0

私の仮定は、すでにスケジュールのロードがある場合、ロードを再度トリガーしたくないということです。

フラグベースのソリューションを使用できます

$(document).ready(function() {

    var intBottomMargin = 300;

    $(document).scroll(function(e) {
        if (clickFlag) {
            return;
        }

        clickFlag = true;

        if ($(window).scrollTop() >= $('main-content').height()
                - $(window).height() - intBottomMargin) {

            setTimeout(function() {
                        $("#next-paginav")[0].click();
                    }, 800);
        }

    });
});

var clickFlag = false;
function myClickHandler() {
    $.ajax({}).always(function() {
                clickFlag = false;
            })
}
于 2013-04-01T05:21:05.677 に答える