YUI 3 学习笔记:event
event 模块包括 event, event-custom, event-simulate 三部分,类图如下:
![]()
- Event 类的调用融合在 Node 中,和 Loader 与 YUI().use 的关系类似。
- 任何对象,只要扩展 EventTarget 接口,就自动具有了一套事件管理机制。使用很简单:
YUI().use('event', function(Y) { function Pig() { // 公布事件 this.publish('farting', { emitFacade: true, defaultFn: function() { alert('猪猪放屁啦'); } }); } Pig.prototype.fart = function() { // 触发事件 this.fire('farting'); }; Y.augment(Pig, Y.EventTarget); var pig = new Pig(); // 订阅事件 pig.on('farting', function(e) { e.preventDefault(); alert('小猪猪乖,不放屁'); }); pig.fart(); }); - CustomEvent 很完整的实现了一套事件管理机制,对象的冒泡、立即停止、订阅器的先进先出和取消执行等等,YUI 3 都支持。
- Do 实现了一套简单的 AOP 机制。
- DOMEventFacade 对原生 e 做了封装,使用起来更自然,很舒服。
- Y.Env.evt.plugins 是事件处理的扩展钩子。在 YUI 3 的代码中,这种扩展和分离机制用得比较多。
快乐学习,欢迎讨论。

October 31st, 2009 on 10:18
我这边调用的时候触发不了自定义事件的默认方法,除非使用event-custom 才可以。
April 8th, 2010 on 9:57
yui3 中的 simulate函数是干什么用的 怎么用 跟on有什么区别 官方文档的例子也也看不出什么意思?
leave a reply