Javascript 未触发动态添加链接的ajax成功事件
在我的rails 4应用程序中,我很难为使用jquery动态添加到页面的链接触发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” 但不触发的版
<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是否将您的注释放入答案中,以便我可以接受并给您打分?