2012-04-16 129 views
0

我想要使用此功能無限滾動:ajax'腳本'數據類型不工作?

<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 ...所以我不知道爲什麼它會n要使其觸發在控制檯日誌成功的消息,如果它成功地返回200,當我做手工..

繼承人控制器

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()'? – 2012-04-16 03:53:10

+0

這是一個更紅寶石的問題,但它的400(壞請求),因爲它形成這樣的網址... http:// localhost:3000/[object%20Object]?_ = 1334548636070 – Tallboy 2012-04-16 03:58:15

+0

使用調試器來找出原因該URL是不可靠的。我不知道URL來自哪裏,但我確實知道'[object Object]'來自'toString()'對象;例如:'({})。toString()' – 2012-04-16 04:00:51

回答

0

我用下面的代碼:

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