我想要一个jQuery脚本加载后,所有的DOM元素加载。我试图通过Template.Mytemplare.onRendered();运行,但这不能解决我的问题,因为DOM还没有准备好。另外,我使用的是Flow-router而不是Iron Router,所以我不能使用Iron Router的onAfterAction钩子或模板的呈现回调?我还使用了订阅,所以如果订阅准备好了,我就加载DOM Template.subscriptionReady。有什么建议吗?
发布于 2016-01-15 18:40:19
您可以结合使用onRendered和jQuery的ready函数:
Template.Mytemplate.onRendered(function() {
$(function() {
// your code goes here
});
});发布于 2020-05-01 08:33:56
现在在Meteor中最好的方法是使用以下代码:
Template.MyTemplate.onRendered(function(){
Tracker.afterFlush(function(){
// run code in here
});
});当DOM实际完成加载时,使用afterFlush运行代码。您将需要Meteor "tracker“包,这是一个官方插件。
发布于 2016-01-15 19:59:02
问题是当执行Template.myTemplate.onRendered();时,订阅还没有准备好,所以DOM还没有准备好。因为我在加载DOM之前使用了Template.subscriptionsReady检查。所以在订阅时有一个叫做OnReady()的回调函数。它将是这样的:
Meteor.subscribe("somePublication", {onReady: function(){//code to perform after //subscription is ready goes here }})
https://stackoverflow.com/questions/34806156
复制相似问题