javascript - Ajax回调不响应

标签 javascript jquery html ruby-on-rails ajax

我和这个问题有同样的问题Ajax callbacks not working with Rails 3.0.5 and jQuery 1.5.1 。我不明白它的答案,但是。我已经找到了导致问题的原因,但不确定原因以及如何解决。我正在使用Kaminari gem 。

请帮帮我。

在我的 View 中:

<div id="paginator">
  <%= paginate @user, params: {id: nil, pgsz: 20}, remote: true %>
</div>

在我的 Controller 中:

  @user = Kaminari.paginate_array(@properties, total_count: @search_result.total_count).page(@pg).per(@pgsz)
    respond_to do |format|
      format.js
      format.html
    end

在我的Show.js.erb

$('#list').html("<%=j (render 'search_result_list') %>");
$('#paginator').html("<%=j (paginate(@user, params: {id: nil, pgsz: 20}, remote: true).to_s) %>");

在我的另一个 JS 文件中,我监视 ajax

$('#paginator')
.on("ajax:send",  function () {
  // Run a spinner
  console.log("=====BEfore SEND");
})
.on("ajax:complete",  function (e, data, status, xhr) {
  // Stop the spinner
  console.log("=====Afte SEND");
})

所以我发现$('#paginator').html("<%=j (paginate(@user, params: {id: nil, pgsz: 20}, remote: true).to_s) %>");此行导致 ajax:successs or ajax:complete 不回调。但如果我修改 $('#paginator').html $('#paginator').append发生了回调,但这不是我需要的。

更新:

刚刚发现它不只是$('#paginator').html("<%=j (paginate(@user, params: {id: nil, pgsz: 20}, remote: true).to_s) %>");这是造成的,但如果我只是将其修改为 $('#paginator').html("Hey");也不会导致回调。

知道为什么会这样吗?

最佳答案

尝试更改 Controller 中格式的顺序。

@user = Kaminari.paginate_array(@properties, total_count: @search_result.total_count).page(@pg).per(@pgsz)
    respond_to do |format|
      format.html
      format.js
    end

我遇到了类似的问题,最后添加 format.js 有所帮助。我在 html 之后还有 format.json ,不确定你是否需要这个。

关于javascript - Ajax回调不响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31034164/

相关文章:

javascript - Jquery/Javascript 根据输入字段更改表单操作

javascript - window.location.href 在 Meteor 中不起作用

javascript - 显然简单的函数不返回任何内容

php - 在页面加载时选择表单选项

html - 禁用 KendoUI 下拉列表选项

html - 导航栏中图像的垂直对齐

javascript - 我的 HTML 页面上的白点

javascript - HTML 工具表单元素

javascript - 在启动 JavaScript 函数之前等待

html - 继承绝对位置