在js.erb Ruby on Rails中渲染部分后,资产中的Javascript无法正常工作

Imr*_*qvi 4 javascript jquery ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

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

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

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

Oss*_*Oss 7

将单击处理程序附加到生成的元素的父元素,它将处理来自partials的所有生成元素.

假设你有一个div与类content包含所有的HTML.

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

或者将它附加到 document

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

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