【问题标题】:Javascript in Assets not working after Rendering Partial in js.erb Ruby on Rails在 js.erb Ruby on Rails 中渲染部分后,资产中的 Javascript 不起作用
【发布时间】:2016-03-07 08:10:01
【问题描述】:

之前有人问过类似于我的问题,但这里的情况有点不同 - 我有一个 js.erb 文件,我正在使用 (private_pub) 发布其中的部分内容,如下所示

<% publish_to "/conversation/update_waiter" do %>
   $("#online_waiters").replace_html('<%= j(render :partial => "/restaurants/online_waiters")%>');     
<% end %>

部分成功呈现在所有用户墙上,并且不会生成额外或重复的divs。但是在click 函数(这是新渲染的部分中的anchor)停止工作。虽然它的功能在 /assets/js 中定义。现在,如果我刷新页面,在向用户显示该部分之后,由于我的 cookie 显示的相同部分,工作正常。任何帮助或想法将不胜感激

【问题讨论】:

    标签: javascript jquery ruby-on-rails ruby-on-rails-3 ruby-on-rails-4


    【解决方案1】:

    将点击处理程序附加到生成元素的父元素,它将作用于从部分生成的所有元素。

    假设你有一个 divcontent 包含你所有的 html。

    $(".content").on("click", "#anchor_one", function(e) {
      console.log("Working!");
    });
    

    或附加到document

    $(document).on("click", "#anchor_one", function(e) {
      console.log("Working!");
    });
    

    另一种解决方案是在您的 js.erb 文件中添加处理程序。

    【讨论】:

    • 今天我意识到没有核心 JS 知识的后端开发会让你失望。谢谢它帮助的人
    猜你喜欢
    • 1970-01-01
    • 2012-07-29
    • 2017-05-07
    • 2013-06-24
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多