在我的rails 4应用程序中,我无法获得ajax"成功"事件触发使用jquery动态添加到页面的链接。我正在创建如下的标记并将其动态添加到页面中。
<a data-confirm="Are you sure?" data-method="delete" data-remote="true" href="/mylink" rel="nofollow">delete</a>
以下操作触发:
$(document).on("ajax:success"
但是没有触发的版本和我想要使用的版本是:
$("a[data-remote]").on("ajax:success"
在$(document)
版本没有的情况下,知道为什么$("a[data-remote]")
版本有效吗?为了澄清,当动态添加内容时,它不起作用。对于页面上已有的链接,它们可以很好地触发事件。
注意:Turbolinks已被删除。
答案 0 :(得分:0)
这是因为.on()事件处理程序不处理动态添加的元素,除非你像这样指定它:
$(document).on('ajax:success', 'a[data-remote]', function(){});".
适用于&#34; $(文件)&#34;因为事件处理程序在事件冒泡到它的父元素时捕获事件,在这种情况下&#39;文档&#39;。
您应该将事件处理程序添加到包含所有&#39; a [数据确认]&#39;的父元素。所以它不会过滤每个事件,或者您可以像上面的代码一样指定。