1

Ryan Bates Railscast #114(revised)に従い、ページに無限スクロールを追加しました。Javascript は最初の最初の 10 個のオブジェクト (サイトが読み込まれたときに読み込まれる最初の 10 個のオブジェクト) で機能しますが、問題は、スクロール時に読み込まれる残りのオブジェクト (ページ分割されたオブジェクト) で JavaScript が機能しないことです。

誰かがこの問題を解決する方法を知っていますか?

.js (これは説明のためのダミーの js の例です。最初の 10 個のオブジェクトに境界線がありますが、残りのオブジェクトにはありません)

$ ->
  $(".thumbnail").css "border-width": "2px"

.css

.thumbnail {
    border-style: solid;
    border-color: #ee2a7c;
    border-width: 0px;
}

main_view.html.erb

<div class="container" id="sp">
   <%= render 'pages/singlePost' %>
</div>
<div class="row">
   <div class="span6 offset3">
      <%= will_paginate @posts %>
   </div>
</div>

_singlePost.html.erb

<% @posts.each do |p| %>
   <div class="row">
      <div class="span6 offset3">
        <div class="thumbnail">
           <%= p.title %>
            /*Some other code goes in here*/
        </div>
      </div>
   </div>
<% end %>

main_view.js.erb

$('#sp').append("<%= j render 'pages/singlePost' %>");
<% if @posts.next_page %>
    $('.pagination').replaceWith('<%= j will_paginate(@posts) %>');
<% else %>
    $('.pagination').remove();
<% end %>

controller.rb (一度に 10 個のオブジェクトがページ分割されます)

def lelist
   @post = Post.new
   @posts = Post.where("DATETIME(created_at) <= DATETIME(?)", Time.now).order("created_at DESC").page(params[:page]).per_page(10)
end
4

1 に答える 1