1

私はこれにうんざりしていて、今までこれに対する解決策が見つかりませんでした.hereは私のコードです

$("#submit").click(function(e){
    e.preventDefault()  
    var loading = "<img src='/zojfa/images/loading.gif' alt='Loading...' />";
    var scrolltop=$('#scrollbox').attr('scrollTop');
    var scrollheight=$('#scrollbox').attr('scrollHeight');
    var windowheight=$('#scrollbox').attr('clientHeight');
    var post = $(this).attr("name") + "=" + $(this).val();
    var form_data = $('#search_form').serialize() + "&" + post;

    var scrolloffset=20;
    $('#search').html(loading);
    $.post("dosearch.php",form_data,function(newitems) {
        $('#content').append(newitems);
            });
    $('#scrollbox').scroll(function(){
    if(scrolltop>=(scrollheight-(windowheight+scrolloffset))){
        form_data = form_data + "&size=" + $("#content > div").size();
    setTimeout($.post("dosearch.php",form_data,function(newitems) {
        $('#content').append(newitems);
            }),5000);
    }
    });     
        });

});

フォーム データを投稿すると、このフォーム データは serialize() され、dosearch.php に送信されます。

送信ボタンをクリックすると関数がうまく機能し、関数が実行され、このスクリプトの 11 行目の結果セットが返されます。

次に、スクロールイベントをリッスンします。スクロールイベントが発生すると、コンテンツdiv内のdivを数えて、これまでにロードしたdivの数を確認し、この数をdosearchに送信してより多くの結果を取得します

SELECT something FROM table WHERE someid=some another id LIMIT $number(これは、div を数えることで得られます.. 別の解決策はありますか?div の ID を設定するのでしょうか?私が使用するこの解決策で十分ですか?),6

今私の問題はどこですか.私はfirebugによって投稿されたデータをチェックします

そして、このdivの一番下に到達すると、多くのajaxリクエストが起動し、firebugコンソールでこのような異なる値を持つ多くの投稿サイズが表示されます

size=6
size=12
size=12

settimeout についてスクリプトを修正するかもしれないと考えましたが、これで成功しませんでした。

私はあなたの助けに感謝します。

4

1 に答える 1

1

このリンクは、結果を得るのに役立ちます。 デモはここをクリック

これがどのように機能するかです

于 2012-12-08T08:55:29.817 に答える