2013-05-08 93 views
0

我試圖在我的rails應用程序中實現jQuery Ajax,並且到目前爲止它工作正常,但是有一個錯誤我無法將我的頭包裹起來。基本上,我有一個書籍頁面,其中列出了使用will_paginate將所有書籍分成5頁的書籍。Rails 3.2:爲什麼will_paginate頁面鏈接會在第一次點擊後消失

我的圖書視圖index.html.erb文件有此代碼段:

<div id="page_paginate"> 
    <%= will_paginate @books %><br /> 
    <%= render @books %> 

</div> 

的@books部分保存爲_book.html.erb,看起來像這樣:

<div class="books_box"> 
<h1><%= book.title%><span>(<%=link_to book.author.name, book.author%>)</span></h1> 
    <img alt="image" src="<%= book.image_url %>"> 
    <div class="book_info"> 
     <div class="detail_button"><%= link_to "Details", '#' %></div> 
     <div class="like_button"><%= link_to "Like", '#' %></div>     
    </div 

在我的application.js文件,我有以下代碼:

$(function() { 
    $("#page_paginate .pagination a").live("click", function() { 
    $.getScript(this.href); 
    return false; 
    }); 

}); 

而且我也有意見/書籍目錄中的文件index.js.erb的:

$("#page_paginate").html("<%= escape_javascript(render(@books))%>") 

的問題是:

雖然分頁與AJAX完美的作品;頁面不用重新加載就可以了,所有的分頁鏈接都會在第一次點擊後消失nd我必須返回books_url才能讓它再次顯示。我曾試圖把<%= will_paginate%>在書本部分是這樣的:

<%= will_paginate @books %><br /> 
<div class="books_box"> 
    <h1><%= book.title%><span>(<%=link_to book.author.name, book.author%>)</span></h1> 
     <img alt="image" src="<%= book.image_url %>"> 
     <div class="book_info"> 
      <div class="detail_button"><%= link_to "Details", '#' %></div> 
      <div class="like_button"><%= link_to "Like", '#' %></div>     
     </div 

    </div> 

,但這樣一來,該頁面的鏈接顯示在每一個上市的頂部。我的目標是讓分頁鏈接僅顯示在每頁結尾的上方和下方。我認爲這可能是我的循環或我放置鏈接的問題,但我嘗試了所有我的新手可能想到的。我希望有一點幫助。由於

回答

1

當下面的代碼運行

$("#page_paginate").html("<%= escape_javascript(render(@books))%>") 

它有效地消除一切內<div id="page_paginate">

<div id="page_paginate"> 
    <%= will_paginate @books %><br /> <!-- This is removed. --> 
    <%= render @books %> <!-- This is also removed. --> 
</div> 

適用.html("<%= escape_javascript(render(@books))%>")之前。

爲了防止<%= will_paginate @books %><br />被移除,在另一個<div>包裹<%= render @books %>如下:

<div id="page_paginate"> 
    <%= will_paginate @books %><br /> 
    <div id="books_render"> 
     <%= render @books %> 
    </div> 
</div> 

,並選擇#books_render,而不是#page_paginateindex.js.erb

$("#books_render").html("<%= escape_javascript(render(@books))%>") 
+0

它的工作!非常感謝 – muyiwamat 2013-05-08 14:29:11

+0

對不起,我很抱歉,但爲了將來的參考,爲什麼有必要在第一個地方的page_paginate div上轉義javascript? – muyiwamat 2013-05-08 14:31:44

+0

http://stackoverflow.com/a/1623813/559119應該是你在找什麼。 – Sun 2013-05-08 14:34:59

相關問題