jquery - 使用 Turbolinks 时如何绑定(bind)事件?

标签 jquery ruby-on-rails turbolinks

如果表单的文本区域为空白,我想阻止表单的发布。我正在使用 jQuery 和 Turbolinks。我必须绑定(bind) ajax:beforeSend,但我让它工作:

  $(document).on 'page:load', '.task-form', ->
    $(this).bind 'ajax:beforeSend', ->
      alert "hi"

提交表单时我没有看到任何警告。知道为什么吗?

我正在通过 ajax 远程加载表单。

# tasks/new.js.erb
$('.task-form-wrapper').append('<%= j render("form") %>');
$('#task_name').focus();

最佳答案

$(document).on 'page:load', '.task-form', ->

page:load 事件不会在 .task-form 元素上触发,而是在 document 上触发。您必须将其更改为:

$(document).on 'page:change', ->
  $('.task-form').on 'ajax:beforeSend', ->
    alert 'hi'

我将 page:load 更改为 page:change 否则,只有当第一个页面请求位于带有表单的 View 上时,它才有效。每次加载新页面时都会触发 page:change

关于jquery - 使用 Turbolinks 时如何绑定(bind)事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18581040/

相关文章:

ruby-on-rails - rails 3 : How to get all Posts which ids are not in a given list?

ruby-on-rails - rails : cattr_accessor and class variables

ruby-on-rails - rails 4 中的多个数据库连接

ruby-on-rails - rails redirect_to 不加载 Assets 下的 javascript

ios - 如何在turbolinks-ios中禁用UIWebView的缩放?

javascript - 调整大小时 Accordion 循环

javascript - 检查 JSON 数组是否为空

javascript - 使用javascript和jquery在div中设置图像的高度和宽度

javascript - DOM修改后如何找到scrollTop

ruby-on-rails - Turbolinks 不允许我在不重新加载页面的情况下提交表单