gpt4 book ai didi

jquery - 使用 will_paginate Rails 4 的 Ajax 请求

转载 作者:数据小太阳 更新时间:2023-10-29 07:52:46 26 4
gpt4 key购买 nike

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

这是我的设置,我认为 JS 在某处失败了。我的 jQuery 没有那么强大。

Index.html.erb

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

shared/_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

我该如何解决这个问题?

最佳答案

我想我会回答这个问题,这样也许它可以帮助其他人,我不得不将事件委托(delegate)给一个始终存在的 DOM 元素,因此使用了 body 标签作为例子

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

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

好的链接 Here

关于jquery - 使用 will_paginate Rails 4 的 Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23426363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com