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
文件中添加处理程序。
之前有人问过与我类似的问题,但这里的情况有点不同 - 我有一个 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
文件中添加处理程序。