锁定老帖子 主题:发布一个事件管理模块
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2010-08-01
最后修改:2010-08-01
在BeyondSoft期间写了一个关于事件对象的分析报告,期间不断的总结。业余时间练习写了事件管理的各个版本(E0.0.1~E0.3.1)。目的希望根本工作需要选择不同的版本,因为有些库的事件模块很强大但却用不上。灵感来自JQuery , Dean Edwards , 灵图api 。当然还有与群里 猪婶婶 的讨论。
/**
以下列出的是完整版E0.3.1的使用
1,最简单的添加、删除监听函数的事件 function handle(){ //todo } E.add(document,'click',handle); E.remove(document,'click',handle); 2,为同一个元素添加多个handle时,执行有序。如下先弹出1,再2 function handle1(){ alert(1); } function handle2(){ alert(2); } E.add(document,'click',handle1); E.add(document,'click',handle2);
3,handle只执行一次 function handle(){ alert(1); } E.add(document,'click',handle,true);
4,删除元素指定类型的所有监听器 function handle1(){ alert(1); } function handle2(){ alert(2); } E.add(document,'click',handle1); E.add(document,'click',handle2); E.remove(document,'click'); 5,删除附加元素上的所有监听器 function handle1(){ alert(1); } function handle2(){ alert(2); } E.add(document,'click',handle1); E.add(document,'mouseover',handle2); E.remove(document); 6,主动触发事件。如模拟用户点击 function handle(){ alert(1); } E.add(document,'click',handle); E.dispatch(document,'click'); 7,如有必要,可给html元素添加自定义事件,使用dipatch触发 function handle(){ alert('myevent'); } E.add(document,'myevent',handle); E.dispatch(document,'myevent'); 8,给任意对象添加自定义事件 function handle(){ alert('fish is swimming.'); } var fish = {}; E.add(fish,'swimming',handle); E.dispatch(fish,'swimming');
我整理的事件对象属性列表: http://docs.google.com/View?id=dr9sm67_277d5g7wgdn
源码见附件
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2259 次