我已经在我的网站上使用Kaminari gem进行了ajax分页,但是我很难让ajax回调函数工作
我使用的是jquery-1.5.1,rails 3.0.5,我有最新的rails.js文件
我的podcasts.html.haml如下所示
#paginator
= paginate @podcasts, :remote => true
#podcasts
= render @podcasts我的index.js.erb文件如下所示:
$('#podcasts').html('<%= escape_javascript render(@podcasts) %>');
$('#paginator').html('<%= escape_javascript(paginate(@podcasts, :remote => true).to_s) %>');分页方面工作得很好,页面确实是通过ajax加载的,但我想做一些ajax回调,但我就是想不出如何让它工作。
我尝试将以下代码的许多变体添加到我的application.js文件中,但都没有成功:
$('#paginator a').bind('ajax:success', function(data, status, xhr) {alert("success!");})我希望上面的代码在ajax完成后发出警报。不过,什么也没发生。
有人有什么想法吗?
PS
上面的分页方法来自Kaminari gem,它创建了以下html:
<div id="paginator">
<nav class="pagination">
<a href="/podcasts" data-remote="true">Page 1</a>
<a href="/podcasts?page=2" data-remote="true">Page 2</a>
<a href="/podcasts?page=3" data-remote="true">Page 3</a>
</nav>
</div>发布于 2011-03-03 23:59:45
我不能完全遵循您的代码,但我做了一个简单的测试(jquery 1.5.1,rails 3.0.5),它对我很有效:
ajax_controller.rb
class AjaxController < ApplicationController
def get_data
respond_to do |format|
format.js { sleep 1; render :json => "ajax value" }
end
end
endindex.html.erb
<%= link_to "get_data", get_data_path, :remote => true, :id => 'request' %>
<div id="response">
</div>
<%= javascript_tag do %>
$("#response").html("default value");
$("#request").bind("ajax:success", function(e, data, status, xhr) {
$("#response").html(data);
});
<% end %>routes.rb
get "ajax/index"
get "ajax/get_data", :as => "get_data"我希望这能有所帮助。
https://stackoverflow.com/questions/5169628
复制相似问题