有没有Meteor任何route.ready回调?更简单的jQuery事件附件

时间:2015-08-18 19:13:24

标签: javascript jquery meteor iron-router meteor-blaze

由于meteor从blaze模板动态创建DOM内容,因此附加到动态元素的jquery事件存在问题。

每次更改DOM后,某些元素可能会重新出现在应用程序中,并且需要重新附加jquery事件,例如使用$(".element").onclick(...);

我认为解决方案类似于$(document).ready(...);,但对于路线,可能看起来像:

Router.route.ready(function(){
  $(".element").onclick(...);
});

这对于为附加事件使用常规jQuery语法是一个简单的解决方案,并且会在每个路由加载后运行。

目前是否有实现同类功能的解决方案?

1 个答案:

答案 0 :(得分:0)

将事件附加到DOM元素的流行方式是使用模板事件,例如:

Template.foo.events({
  'click .element': function(ev){
    ... your code
  }
});

这在范围界定方面很方便,确保您将事件附加到模板中实际存在的元素,并处理通过{{#each ...}}块多次呈现的模板。