2012-04-16 120 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; 
    } 
});