2011-02-27 36 views
1

這裏的交易,Rails的jQuery無頁面問題

我想解決爲什麼無頁面(無限滾動)不呈現。使用this jQuery Plugin

我的will_paginate有產品具有分頁我的索引頁:

def index 
    @products = Product.find(:all, :order => "position DESC").paginate(:per_page => 3, :page => params[:page]) 

    if request.xhr? 
    render :partial => 'shared/products', :object => @products 
    end 
end 

我的索引頁被調用部分

<%= render "shared/products", :object => @products %> 

這又是通過收集到一個單一的產品產品部分

<%= render 'shared/product', :collection => @products %> 

並呼叫頁面少就可以瞭如果啓動Javascript(否則will_paginate步驟英寸

<%= pageless(@products.total_pages, products_path) %> 

----------- 

def pageless(total_pages, url=nil, container=nil) 
    opts = { 
    :totalPages => total_pages, 
    :url  => url, 
    :loaderMsg => 'Loading more results' 
    } 
    container && opts[:container] ||= container 

    javascript_tag("$('#results').pageless(#{opts.to_json});") 
end 

最後這裏是奇異的產品部分的代碼現在

<% @products.each do |product| %> 
    <li id="product_<%= product.id %>"> 
    <%= link_to product_image(product), product %> 
    </li> 
<% end %> 

當我加載的頁面,沒有JS錯誤,我可以看到頁面被加載到我的服務器日誌中,但沒有任何渲染。一切似乎完美,但它不渲染。任何幫助,將不勝感激。

-Scott

+1

你沒有給出足夠的信息給任何人解決這個問題,而無需下載插件並自行運行它。頁面正在加載到你的服務器上,但他們是否返回正確的響應?在Chrome中,使用開發者工具中的網絡標籤。在Firefox中,使用Firebug。現在你已經驗證了,是否正確解析了響應?檢查$ .ajax是否使用了正確的dataType參數等等。它出錯的地方在哪裏?這就是你需要告訴我們的。 – 2011-02-27 03:53:14

+0

謝謝。得到了一些幫助,並立即引導到你的建議。是DOM ID和類中的問題。感謝對於那些有同樣問題的評論 – ScotterC 2011-02-27 04:42:48

回答

0

該產品沒有被追加到HTML。原來是HTML中的class/id問題。對於任何試圖調試類似的東西的人,請參閱Jonathan Tran對這個問題的評論。

+0

,最終爲我工作的是進入無頁面JavaScript文件,並在最後將'ajax'數據類型從'html'更改爲'script' – ahuang7 2012-01-17 23:25:32

0

我改變了一些東西,使之成爲Rails3中工作:

index.html.erb

<%= render :partial => 'blah/fooPartial' , :locals => { :foo => @foo} %> 
<%= will_paginate(@foo) %> 
<%= pageless(@foo.total_pages, @path) %> 

我FooController的:

def index 
    @foo = Foo.paginate(:page => params[:page], :per_page => 10). 
    order("created_at DESC") 

    respond_to do |format| 
     format.js 
     format.html # index.html.erb 
    end 
    end 

我index.js .erb

$('.row').last().after("<%= escape_javascript(render :partial => 'blah/fooPartial' , :locals => { :foo => @foo}).html_safe %>"); 

通過ahuang

希望這有助於!歡呼聲也改變了AJAX的數據類型在非常的建議從「HTML」中jquery.pageless.js「腳本」結束!