我正在使用“无限滚动插件”动态添加内容。在每篇文章中,我都有一个赞按钮,但它不适用于通过“无限滚动”添加的内容
HTML (erb)
<% current_user.likes?(post) ? like_icon_name = "icon-thumbs-up" : like_icon_name = "icon-thumbs-up-alt" %>
<%=link_to "", url_for(controller: "like", action:"toggle", resource_name: post.class.to_s, resource_id: post.id), class:"like #{like_icon_name}", remote: true%>
HTML(生成)
<a class="like icon-thumbs-up-alt" data-remote="true" href="/it/like/toggle?resource_id=1&resource_name=Photo"></a>
像.js
$(document).on("ready page:load", function() {
$("a[data-remote].like").on("ajax:success", function(e, data, status, xhr){
if(xhr.responseText){
$(e.target).toggleClass("icon-thumbs-up-alt icon-thumbs-up");
}else{
console.log(xhr);
}
});
});
滚动.js
// usage:
// $(elem).infinitescroll(options,[callback]);
// infinitescroll() is called on the element that surrounds
// the items you will be loading more of
$(document).on('ready page:load', function() {
$('#posts').infinitescroll({
navSelector : "nav.pagination",
// selector for the paged navigation (it will be hidden)
nextSelector : "nav.pagination .next a:first",
// selector for the NEXT link (to page 2)
itemSelector : "#posts div.post",
// selector for all items you'll retrieve
debug : false,
// enable debug messaging ( to console.log )
}, function(arrayOfNewElems){
$(document).trigger('scrolled');
// optional callback when new content is successfully loaded in.
// keyword `this` will refer to the new DOM content that was just added.
// as of 1.5, `this` matches the element you called the plugin on (e.g. #content)
// all the new elements that were found are passed in as an array
});
});
page:load 用于“ turbolinks ”