由于meteor从blaze模板动态创建DOM内容,因此附加到动态元素的jquery事件存在问题。
每次更改DOM后,某些元素可能会重新出现在应用程序中,并且需要重新附加jquery事件,例如使用$(".element").onclick(...);
我认为解决方案类似于$(document).ready(...);
,但对于路线,可能看起来像:
Router.route.ready(function(){
$(".element").onclick(...);
});
这对于为附加事件使用常规jQuery语法是一个简单的解决方案,并且会在每个路由加载后运行。
目前是否有实现同类功能的解决方案?
答案 0 :(得分:0)
将事件附加到DOM元素的流行方式是使用模板事件,例如:
Template.foo.events({
'click .element': function(ev){
... your code
}
});
这在范围界定方面很方便,确保您将事件附加到模板中实际存在的元素,并处理通过{{#each ...}}
块多次呈现的模板。