maodouio / meteor-master-classes

毛豆网Meteor在线师徒班
http://www."培养国内第一批Meteor布道者".com
15 stars 7 forks source link

Meteor中如何更好的进行事件代理,以及是否有必要 #11

Open ennea8 opened 9 years ago

ennea8 commented 9 years ago

模板中可以通过以下方式进行绑定事件 Template.lists.events({ 'click .list': function() { } }); 但这种绑定时间的性能较弱,把事件帮到他们的父级或者模板的顶层会更好些,但blaze貌似没提供一个方面的方法,得自己去判断target来源, 不知是否内部已做了优化,待研究

而jquery 可方便通过delegate或者on方法实现 Eg. $( "view" ).on( "click", ".list", function() { })

kevingzhang commented 9 years ago

e.currentTarget e.target 可以区分当前触发的 element 和处理的 element. 你就可以放到顶层e.currentTarget来定义处理 event, 然后看 e.target 是谁, 来做响应的操作

ennea8 commented 9 years ago

看来blaze事件处理默认就是使用了代理的方式进行优化,所以就不用亲自实现了 ^_^ https://github.com/meteor/meteor/wiki/Using-Blaze有一些相关信息