【问题标题】:Why do coffeescript/jquery functions not trigger on DOM elements loaded via ajax, and how to fix?为什么 coffeescript/jquery 函数不会在通过 ajax 加载的 DOM 元素上触发,如何解决?
【发布时间】:2013-05-07 19:06:27
【问题描述】:

在 Rails 3.2 应用程序中,我有一个咖啡脚本函数,当单击链接时,它会切换 css 类。

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

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

这很好用。

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

这是为什么?

如何解决?

【问题讨论】:

    标签: jquery ruby-on-rails ajax coffeescript


    【解决方案1】:

    动态元素需要使用on

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

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

    【讨论】:

      【解决方案2】:

      使用 jQuery 委托函数而不是单击。 http://api.jquery.com/delegate/

      $('#paren-element-id').delegate('.toggle-link', click', function yourCallback(){});

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多