我有一个控制器动作,如下所示:
@sports = @articles.sports.paginate(page: params[:sports_page], per_page: 6)
@world = @articles.world.paginate(page: params[:world_page], per_page: 6)
respond_to do |format|
format.html { render 'index_region' }
format.js { render :file => "/articles/latest.js.erb" }
end
这两个对象同时在视图中分页。
我想通过ajax/js.erb
$(document).on('turbolinks:load', function () {
if($('#sports').size() > 0) {
$('.sports-pagination').hide();
$('#load_more_photos_sports').show();
$('#load_more_photos_sports').on('click', function() {
var urlsports = $('.sports-pagination>.pagination .next_page a').attr('href');
$.getScript(urlsports);
});
}
if($('#world').size() > 0) {
$('.world-pagination').hide();
$('#load_more_photos_world').show();
$('#load_more_photos_world').on('click', function() {
var urlworld = $('.world-pagination>.pagination .next_page a').attr('href');
$.getScript(urlworld);
})
}
});
但是无论点击哪个按钮,我想它必须通过相同的js.erb
文件?那是对的吗?或者我可以告诉控制器响应不同的js.erb
文件,具体取决于点击了哪个按钮?
或者,如果我可以将var status = true
和var status = false
添加到代码中并将其传递到js.erb文件中,那么我可以设置一个仅运行与之相关的代码的if statement
单击的按钮。
答案 0 :(得分:0)
我通过addingClass
解析了jquery脚本中的元素,然后使用if statement
中的js.erb
来检查该类。如果有更好的方法,请告诉我。