繁体   English   中英

Rails Ajax 事件替换 DOM 元素

[英]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将是被替换元素的一部分。

逃生 Javascript

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM