jquery - 为什么 CoffeeScript/jquery 函数不会在通过 ajax 加载的 DOM 元素上触发,以及如何修复?

标签 jquery ruby-on-rails ajax coffeescript

在 Rails 3.2 应用程序中,我有一个 CoffeeScript 函数,可以在单击链接时切换 css 类。

#coffeescript
jQuery ->
  $(".toggle-link").click ->
    $(this).toggleClass "selected"

#view
<%= link_to "toggle", my_path, class: "toggle-link" %>

这很好用。

但是如果我将链接移动到ajaxified部分,例如对于分页,jquery 切换停止工作。

这是为什么?

如何修复它?

最佳答案

您需要使用on对于动态元素:

jQuery ->
  $(document).on 'click', ".toggle-link", ->
    $(this).toggleClass "selected"

(将 document 替换为页面的容器,以提高效率)

关于jquery - 为什么 CoffeeScript/jquery 函数不会在通过 ajax 加载的 DOM 元素上触发,以及如何修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16527290/

相关文章:

javascript - 有没有人发现 python-slimmer(javascript 缩小器)有问题?

javascript - 如何检测是否有任何 div 与/'touching' 特定 div 重叠?

ruby-on-rails - -苏: bundle: command not found when starting unicorn

javascript - 重构许多 jQuery Ajax 调用 - 最佳实践?

jQuery - 使用 jQuery 创建下拉菜单时将下拉选项设置为选定状态

javascript - jQuery 链接淡入淡出。帮助!

ruby-on-rails - 如何在 ruby​​ 1.9.3/Rails 3.2.1 中安装 ruby​​-debug

ruby-on-rails - ruby (rails) Net::HTTPResponse 未定义的方法关闭了吗?

javascript - Ajax 调用不起作用这段代码有什么问题?

jquery - 如何解析 Controller 中的 json 值以在 jquery/ajax 中查看