【问题标题】:Ajax request with will_paginate Rails 4带有 will_paginate Rails 4 的 Ajax 请求
【发布时间】:2023-03-26 01:10:01
【问题描述】:

我一直在阅读 SO 上的一些帖子,看看其他人是如何处理这个问题的,我正在使用的实现几乎就在那里,但在请求第三个链接后失败,会发生什么是页面被重新加载而不是触发 ajax要求。我也删除了 Turbolinks,但这并没有什么不同。

这是我的设置,我认为 js 在某个地方失败了,因为我的 jQuery 不是那么强大,我希望有人能帮忙

Index.html.erb

<div class="facebook_ajax">
  <%= render 'shared/posts' %>
</div> 

共享/_posts.html.erb

<% @posts.each do |p| %>
<article class="post">
<%= image_tag('/assets/vandals_fb_profile.jpg') %>
<%= link_to 'Varsity Vandals', "https://www.facebook.com/VarsityVandals", target: 'blank' %>
<%= date_output(p.created_time) %>
  <figure>
    <% if p.large_image_url? %>
      <%= image_tag(p.large_image_url) %>
    <% end %>

    <% if p.video_url? %>
      <%= raw youtube_embed(p.video_url) %>
    <% end %>
  </figure>
  <p><%= p.message.gsub("\n", "<br>").html_safe %></p>
    <% if p.description? %>
      <p><%= p.description %></p>
    <% end %>
    <%= link_to 'Read More', p.link %>
</article>
<hr/>
<% end %>
<%= will_paginate @posts, previous_label: '',  next_label: '', page_links: false %>

index.js.erb

$('.facebook_ajax').html("<%= escape_javascript(render("shared/posts"))%>")

jQuery

<script>
      $(document).ready(function () {
        $(".facebook_ajax .pagination a").on("click", function(){
          $.getScript(this.href);
          return false;
        });
      });
    </script>

因此,当第一次点击下一个链接时,ajax 请求可以正常完成,但在第三次点击时页面重新加载并且 url 更改为

?_=1399027258398&page=3

请问有谁知道如何解决这个问题

谢谢

【问题讨论】:

    标签: jquery ruby-on-rails ruby ruby-on-rails-4 will-paginate


    【解决方案1】:

    我想我会回答这个问题,所以也许它可以帮助其他人,我不得不将事件委托给一个始终存在的 DOM 元素,所以以 body 标签为例

    $(document).ready(function () {
            $("body").on("click", '.facebook_ajax .pagination a', function(e){
              e.preventDefault();
              $.getScript(this.href);
              return false;
            });
          });
    

    我的理解是,一旦第一次点击,你就会失去原来收集的 href 集

    好链接Here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-25
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多