Javascript 在 js.erb Ruby 上 Rails 中渲染部分后资产不工作

Javascript in Assets not working after Rendering Partial in js.erb Ruby on Rails

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

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

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

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

假设您有一个 div 和 class content,其中包含您所有的 html.

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

或附加到 document

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

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