我正在寻找一种方法来触发动态插入页面的新.timeago()
元素上的$("abbr.timeago"
函数。现在这就是我正在做的事情。
# Triggered on initial page load
# application.js.coffee
jQuery ->
# Timeago
$("abbr.timeago").timeago()
有些元素是动态替换的,我发现需要在将它们插入页面后调用timeago函数。
# Triggered after the new abbr.timeago elements have been inserted
// resolve.js.erb
$tweet = $("<%= j render 'conversation_for_tweet', tweet: @tweet %>");
$("#<%= dom_id @tweet, :conversation_for %>").replaceWith($tweet);
$tweet.find("abbr.timeago").timeago();
有没有办法绑定到jQuery的.on
函数,以便动态插入$("abbr.timeago")
代码自动调用.timeago()
?
相关阅读:
答案 0 :(得分:3)
on
对此无济于事。您可以使用on
将事件处理程序绑定到页面上始终存在的内容,以便在绑定时可以在不在页面上的元素上触发事件。在这种情况下,它有点不同。
我之前只是在知道事情发生了变化后再次运行$("abbr.timeago").timeago()
时解决了这个问题。