在BeyondSoft期间写了一个关于事件对象的分析报告,期间不断的总结。业余时间练习写了事件管理的各个版本(E0.0.1~E0.3.1)。目的希望根本工作需要选择不同的版本,因为有些库的事件模块很强大但却用不上。灵感来自JQuery
, Dean Edwards
, 灵图api
。当然还有与群里 猪婶婶
的讨论。
/**
* Event v0.3.1
* 1, 解决IE fn中丢失this
* 2, 统一了事件对象作为fn的第一个参数
* 3, 解决事件对象的兼容性问题,如阻止默认行为,停止冒泡等(支持DOM2/3 events)
* 4, remove方法新增删除元素type类型的所有监听器(参数传el,type)
* 5, remvoe方法新增删除元素所有的监听器(参数传el)
* 6, 解决了同一个事件的handlers执行顺序问题(IE无序,FF/Safari/Chrome中顺序)
* 8, add方法新增once参数,fn只执行一次
* 9, 增加对非html元素(普通对象)自定义事件---观察者模式
* 10,增加dispatch方法
*/
以下列出的是完整版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
源码见附件
- E.rar (20.9 KB)
- 下载次数: 130
分享到:
相关推荐
信心发布管理发布模块 网站设计人员 必备。
最好最实用的新闻发布管理系统模块,可以让我们更方便的开发,让我们节省更多的时间,做更多的事,新闻发布,模块多多,内容多多。。。
新闻发布系统之二级新闻管理模块的设计.pdf新闻发布系统之二级新闻管理模块的设计.pdf新闻发布系统之二级新闻管理模块的设计.pdf新闻发布系统之二级新闻管理模块的设计.pdf新闻发布系统之二级新闻管理模块的设计.pdf...
新闻管理和发布模块 源代码 未编译为dll
该模块又分为商品上新和在售商品的管理以及待售商品的管理这几 个方面。 1商品上新。该模块主要是添加商家店铺里面的新售商品,对于新品上架京东平台 有着严格的要求。首先必须提交店铺签约协议,根据协议规定添加,...
Java 实验的基本新闻发布模块 基于 C/S
网上论坛本系统是对网上论坛系统进行管理,主要包括论坛用户登陆注册模块,论坛账户信息模块,论坛发布模块,留言板模块,聊天室管理模块,发送电子邮件模块。其中每各模块都能进行添加,删除,修改,查询的基本操作...
php5.3+mysql 新闻源广告发布,网站模块调用,资源一站式管理
人才招聘系统由个人用户模块,企业用户模块以及管理员模块三大部分组成。 (1)个人用户模块 个人会员注册,用户个人信息维护; 简历信息填写及维护; 应聘:查询企业发布的招聘信息并应聘岗位; 求职...
好用的新闻管理模块
一套完整的新闻管理和发布模块 三层架构设计 有源代码以及数据库 内附安装说明
如果改名请自己到发布模块里面按顺序更改。 2、其他都和在线发布模块差不多。但是一定要注意把发布模块里面的用户名改到管理员账户一样,否则无法发布。 3、记得修改分类所在的模型id 为了安全,一定要进入后修改...
用户分为3个级别(系统管理员,新闻审核员,各类别管理员) ,可以在线对用户进行添加、修改和删除 系统自动识别有图片的新闻,支持新闻图文标志显示功能 有新闻评论功能(管理员可以设定是否开放该功能) 超强的多...
php5.3+mysql 新闻源广告发布,网站模块调用,资源一站式管理
我们开发一个很大的项目工程时,会用到很多模块或者子工程进行同步开发,如 CommonModel:公共的基础服务,比如工具类、常量类等等; BussinessModel:业务模块,是系统真正要实现的业务,依赖于 common 模块,...
采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计...
java开发软件工程课程设计毕业实习答辩试题库管理系统项目源代码。...5. 后台管理模块 用户信息及权限管理 考试管理 教学大纲管理 题目管理 课程管理 班级管理 问卷调查管理 成绩管理 帖子管理 评论管理
在日常办公中有许多常用的个人数据,如朋友电话、邮件地址、日程安排、日常记事、文件上传和下载,这些都可以用一个个人信息管理系统进行管理。个人信息管理系统可以内置于手掌上的数字处理器,以提供电子名片、便条...
这是前台管理模块的主要功能。 2.评论模块 当用户浏览完自己感兴趣的新闻后,可以对新闻发表自己的评论。 3.新闻搜索模块 由于网站的新闻量比较大,用户想要浏览某个特定的新闻时,可以使用此功能来查找,以便快速...
基于django的新闻发布管理系统 介绍 基于django的新闻发布管理系统 软件架构 新闻模块: 文章管理 新闻评论管理 新闻的类别管理 链接管理 评论模块: 查看评论 发表评论 用户模块: 前台注册登录 重置密码