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

时间:2015-12-02 21:48:24

标签: 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 %>

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

1 个答案:

答案 0 :(得分:6)

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

假设您有一个div的课程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文件中添加处理程序。