Jquery Kaminari无休止的分页问题
我正在尝试使用Kaminari+jQuery进行无休止的分页/无限滚动。我试图将分页结果(行)附加到表中。不幸的是,结果(行标记)显示在表上方。以下是我现有的设置: 事件\u控制器.rbJquery Kaminari无休止的分页问题,jquery,ruby-on-rails-3,pagination,kaminari,Jquery,Ruby On Rails 3,Pagination,Kaminari,我正在尝试使用Kaminari+jQuery进行无休止的分页/无限滚动。我试图将分页结果(行)附加到表中。不幸的是,结果(行标记)显示在表上方。以下是我现有的设置: 事件\u控制器.rb class EventsController < ApplicationController respond_to :html, :js def index @events = Event.all respond_with(@events) end end 类事件控制器=
class EventsController < ApplicationController
respond_to :html, :js
def index
@events = Event.all
respond_with(@events)
end
end
类事件控制器
事件/index.html.erb
<div id="events-container">
<table cellpadding="3" cellspacing="0">
<thead>
...
</thead>
<tbody>
<% if @events.blank? %>
<tr><td> No events yet</td></tr>
<% else %>
<div id="events">
<%= render @events %>
</div>
<% end %>
</tbody>
</table>
<nav class="pagination-container">
<%= paginate @events %>
</nav>
</div>
...
还没有活动
事件/index.js.erb
$('#events').append('<%= j render(@events) %>');
<% if (@events.current_page < @events.num_pages) %>
$('.pagination').replaceWith('<%= j paginate(@events) %>');
<% else %>
$('.pagination-container').remove();
<% end %>
$(“#事件”).append(“”);
$('.pagination')。替换为('';
$('.pagination容器').remove();
events/_event.html.erb
<tr>
<td><%= event.time %></td>
...
</tr>
<tr>
<td><%= event.location %></td>
...
</tr>
...
...
事件\u无止境\u paging.js
jQuery(function() {
var isScrolledIntoView;
isScrolledIntoView = function(elem) {
var docViewBottom, docViewTop, elemBottom, elemTop;
docViewTop = $(window).scrollTop();
docViewBottom = docViewTop + $(window).height();
elemTop = $(elem).offset().top;
elemBottom = elemTop + $(elem).height();
return (elemTop >= docViewTop) && (elemTop <= docViewBottom);
};
if ($('.pagination').length) {
$(window).scroll(function() {
var url;
url = $('.pagination .next a').attr('href');
if (url && isScrolledIntoView('.pagination')) {
$('.pagination').text('Fetching more...');
var script = $.getScript(url);
return script;
}
});
return $(window).scroll();
}
});
jQuery(函数(){
var IsCrolledinToView;
isScrolledIntoView=功能(元素){
var docViewBottom、docViewTop、elemBottom、elemTop;
docViewTop=$(窗口).scrollTop();
docViewBottom=docViewTop+$(窗口).height();
elemTop=$(elem).offset().top;
elemBottom=elemTop+$(elem).height();
return(elemTop>=docViewTop)&(elemTop我认为在表体中有一个div是无效的
如果删除div并将新行直接附加到tbody,您应该会更成功
<tbody>
<% if @events.blank? %>
<tr><td> No events yet</td></tr>
<% else %>
<%= render @events %>
<% end %>
</tbody>
还没有活动
我认为在表体中有一个div是无效的
如果删除div并将新行直接附加到tbody,您应该会更成功
<tbody>
<% if @events.blank? %>
<tr><td> No events yet</td></tr>
<% else %>
<%= render @events %>
<% end %>
</tbody>
还没有活动
更改$(“#事件”).append(“”)
到$(“#事件>tbody:last”).append(“”)
会产生任何结果吗?未经测试,因此会有注释。好主意。不幸的是,事件没有显示在任何地方。尝试了append和prepend。不过,要进一步修改您建议的方法。更改$(“#events”).append(“”)
到$(“#events>tbody:last”).append(“”)
产生任何结果?未经测试,因此进行注释。好主意。不幸的是,事件没有显示在任何地方。尝试了append和prepend。不过,我们将进一步修改您建议的方法。很好。这很有效:$(“#events container tbody”)追加(’');很高兴它对你有用,既然如此,你会考虑接受我的回答吗?甜蜜的。这是有效的:$'('''事件容器TBOR')。追加('');很高兴它为你工作,既然如此,你会考虑接受我的答案吗?