Ruby on rails &引用;远程:真;对已动态加载的内容不执行任何操作

Ruby on rails &引用;远程:真;对已动态加载的内容不执行任何操作,ruby-on-rails,jquery,Ruby On Rails,Jquery,假设您在rails中有这样一个链接: <%= link_to "Next page", url_for(controller: controller_name, action: 'step2'), remote: true, method: :post %> 这将变成一个带有属性data remote=“true”的链接。具有此属性的链接应该进行AJAX调用 当页面加载时,如果它们在DOM中,则会这样做。rails JS将运行,解析数据远程属性,并设置一个侦听器,将单击转换为a

假设您在rails中有这样一个链接:

<%= link_to "Next page", url_for(controller: controller_name, action: 'step2'), remote: true, method: :post %>

这将变成一个带有属性
data remote=“true”
的链接。具有此属性的链接应该进行AJAX调用

当页面加载时,如果它们在DOM中,则会这样做。rails JS将运行,解析
数据远程
属性,并设置一个侦听器,将单击转换为ajax调用

但是,如果动态加载此链接,它将在rails js运行并解析所有内容后插入DOM。这意味着,如果动态加载此链接,当您单击它时,它不会发出ajax调用。它只会将整个窗口重定向到链接


rails js是否提供了一些我可以手动调用的函数,这些函数将重新解析这些
数据远程属性的dom,并确保它们都会进行ajax调用?

您不需要做任何事情

rails js在加载时不会“解析”文档,而是将事件绑定到文档。因此,如果您创建新元素并触发一个事件,它将冒泡并正常工作(就像
jQuery
中不推荐使用的
.live()
方法)

您可以在脚本中看到这一点

只要您正确定义回调(如
ajax:success
ajax:complete
,等等),一切都应该是美好的

有关更多信息,请查看:

  • (不推荐使用该选项,而支持.on())

你说得对-问题是我的CSRF令牌在内联注销后过期,导致后续远程请求被重定向,导致呈现不同的完整页面响应,而不是我正在寻找的部分响应。谢谢
$(document).delegate(rails.linkClickSelector, 'click.rails', function(e) {