2012-04-16 5 views
0

私は無限スクロールのために、この機能を使用しようとしている:ajax 'script' dataTypeは機能しませんか?

<script type="text/javascript" charset="utf-8"> 
(function() { 
    var page = 1, 
     loading = false; 

    function nearBottomOfPage() { 
    return $(window).scrollTop() > $(document).height() - $(window).height() - 200; 
    } 

    $(window).scroll(function(){ 
    if (loading) { 
     return; 
    } 

    if(nearBottomOfPage()) { 
     loading = true; 
     page++; 
     $.ajax({ 
     url: '/paginate?page=' + page, 
     type: 'get', 
     dataType: 'script', 
     success: function(data) { 
      $(".res-list").append(data.responseText); 
      $(window).sausage('draw'); 
      loading = false; 
     } 
     }); 
    } 
    }); 

    $(window).sausage(); 
}()); 
</script> 

問題は、それも完全にhttp://localhost:3000/paginate?format=js&page=2作品ものの、順不同リストにデータを追加いないです。

console.logに「if(nearBottomOfPage()) {」という行が表示された場合、その機能が正常に動作していることがわかります。しかし、私がconsole.logを成功させると、ajax関数のためにそれは決して起動しません....そしてさらに、コンソールからajaxコマンドを実行すると、私が 'responseText'に必要なものを成功コード200で返します私は次のように使用され...ので、私はそれを手動で行うときには、成功した200を返す場合、それはNTOコンソールログに成功メッセージをトリガすることになる理由は考え..

を持っていない相続コントローラ

def paginate 
    @resources = Resource.order(:created_at).page(params[:page]).per(20) 

    respond_to do |format| 
     format.js 
    end 
    end 
+1

['$ .getScript()'](http://api.jquery.com/jQue)を試したことがありますか? ry.getScript /)を '$ .ajax()'の代わりに使用しますか? –

+0

これはもっとルビーの質問ですが、そのようなURLを形成しているので、400(Bad Request)です... http:// localhost:3000/[object%20Object]?_ = 1334548636070 – Tallboy

+0

デバッガを使って、 URLは怪しいです。私はそのURLがどこから来ているのかわかりませんが、 '' [オブジェクトオブジェクト]は 'toString()'オブジェクトから来ています。 '({})。toString()' –

答えて

0

コード:

$.ajax({ 
    url: '/paginate?format=js&page=' + page, 
    type: 'get', 
    dataType: 'text', 
    success: function(data) { 
    $(".res-list").append(data); 
    loading = false; 
    } 
}); 
関連する問題