[英]Rails Ajax event on replaced DOM element
我有一个简单的 Rails ujs 应用程序,页面上有一些远程链接。
<%= link_to 'Test', posts_path, remote: true, id: 'test' %>
在我的 js 模板中,我将此链接替换为新链接。
$('#test').html('<%= j link_to "Test", posts_path, remote: true, id: "test" %>')
同时我需要监听 ajax:success 事件:
window.addEventListener("load", () => {
document.body.addEventListener("ajax:success", (event) => {
# => Expected to be fired on all success ajax calls, no matter partial dom manipulations
});
});
但问题是这个事件永远不会触发。 因为它的目标元素被替换了。
ajax:success 即使其目标元素已从 dom 中删除,我该如何收听?
我的代码没有实际意义,但它的目的是以简单的方式演示现实世界的问题。
当我有远程链接时,比如帖子显示操作,我会创建一个show.html.erb
用于正常交互,然后还创建一个show.js.erb
在那里我将定位我想要更改的元素/从远程链接修改并使用转义 javascript 方法替换 html 那里。 它看起来像$('some element').html('<%= j render 'some_partial.html.erb'%>')
。 其中some_partial.html.erb
将是被替换元素的一部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.