Javascript 未触发动态添加链接的ajax成功事件

Javascript 未触发动态添加链接的ajax成功事件,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,在我的rails 4应用程序中,我很难为使用jquery动态添加到页面的链接触发ajax“成功”事件。我正在创建如下所示的标记,并将其动态添加到页面中 <a data-confirm="Are you sure?" data-method="delete" data-remote="true" href="/mylink" rel="nofollow">delete</a> 以下情况不会触发: $(document).on(“ajax:success” 但不触发的版

在我的rails 4应用程序中,我很难为使用jquery动态添加到页面的链接触发ajax“成功”事件。我正在创建如下所示的标记,并将其动态添加到页面中

<a data-confirm="Are you sure?" data-method="delete" data-remote="true" href="/mylink" rel="nofollow">delete</a>

以下情况不会触发:

$(document).on(“ajax:success”

但不触发的版本和我想要使用的版本是:

$([data remote])。关于(“ajax:success”

你知道为什么
$(文档)
版本可以工作,而
$([data remote])
版本不能工作吗?澄清一下,当动态添加内容时,它并不特别有效。对于页面上已经存在的链接,它们可以触发事件

注意:TurboLink已被删除。

这是因为.on()事件处理程序不会处理动态添加的元素,除非您这样指定:

$(document).on('ajax:success', 'a[data-remote]', function(){});". 
它与“$(document)”一起工作,因为事件处理程序在事件冒泡到其父元素(在本例中为“document”)时捕获事件

您应该将事件处理程序添加到包含所有“a[data confirm]”的父元素中,这样它就不会过滤每个事件,也可以像上面的代码那样指定


.

这是因为.on()事件处理程序不会处理动态添加的元素,除非您这样指定:“$(文档).on('ajax:success','a[data remote]',function(){}”);”。它与“$(文档)”一起工作因为事件处理程序在事件冒泡到文档时捕获事件。您可以将事件处理程序添加到包含所有“a[data confirm]”的父元素中,这样它就不会过滤每个事件。@AdriánSalgado是否将您的注释放入答案中,以便我可以接受并给您打分?