`
zhouyrt
  • 浏览: 1163785 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

发布一个事件管理模块

阅读更多

 

在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
分享到:
评论
1 楼 xiaogezi52 2010-10-29  
真棒,顶一个!

相关推荐

    信心发布管理发布模块

    "信心发布管理发布模块"是针对网站设计人员开发的一个关键工具,它专注于提升内容管理和发布的效率与质量。这个模块的设计目标是为网站的日常运营提供一个便捷、高效且可靠的平台,确保信息的准确无误地传达给用户。...

    新闻管理和发布模块

    1. **.NET框架**:这是微软开发的一个开源、跨平台的开发平台,用于构建各种类型的桌面、移动、Web和云应用。C#作为.NET的主要编程语言,具有类型安全、面向对象和高性能的特点。 2. **C#编程语言**:C#是.NET框架...

    新闻发布管理系统模块

    最好最实用的新闻发布管理系统模块,可以让我们更方便的开发,让我们节省更多的时间,做更多的事,新闻发布,模块多多,内容多多。。。

    destoon采集发布模块

    Destoon采集发布模块是一款专...总的来说,Destoon采集发布模块是 Destoon 平台不可或缺的一部分,通过与火车头软件的配合,使得信息的采集和发布变得更加智能化和高效,对于运营一个全面且活跃的B2B网站来说至关重要。

    PbootCMS火车头在线发布模块无需火车头免登录发布接口即可发布.zip

    本篇文章将详细探讨一个与PbootCMS相关的特殊功能——“PbootCMS火车头在线发布模块”,以及如何实现无需登录火车头就能进行数据发布。 首先,PbootCMS是一款基于PHP开发的开源内容管理系统,它以其轻量级、快速、...

    WordPress3.4发布模块

    综上所述,WordPress 3.4的发布模块是一个全面改进的工具,旨在提升内容创作者的工作效率和网站的管理体验。结合火车头采集工具,用户能够更便捷地获取、编辑和发布网络信息,打造出富有吸引力和竞争力的网站。

    ASP常见模块(1聊天室模块2在线数据库管理模块3在线点播模块4日志博客模块5在线交友模块6在线购物模块7客户管理模块)

    4. **日志博客模块**:这是一个个人或团队分享观点、发布文章的平台。它包括文章发布、分类、评论、搜索等功能,通常与用户系统集成,支持权限控制。开发者可能使用ASP内置的对象如Response、Request、Session来实现...

    discuz X2 发布模块

    社区软件的一个重要组成部分,主要负责社区内容的创建和管理。Discuz! 是一款广泛使用的开源论坛系统,它提供了丰富的功能和灵活的扩展性,使得用户可以轻松搭建自己的在线论坛。在这个特定的发布模块中,用户无需...

    图书管理系统功能模块设计详细说明.pdf

    信息发布管理模块主要用于展示图书馆新闻、图书馆通知公告等信息,以便读者更好地了解图书馆的最新动态。 借书管理模块主要用于管理用户借书操作,包括验证用户借书权限、记录用户所借图书的信息、确认用户借书数量...

    untiy 事件管理器,分发注册的事件,有效降低模块耦合度

    传统上,模块之间直接依赖会导致更改一个模块可能影响到其他模块,而事件系统通过中间人(事件管理器)解耦了这种关系。模块A只需关心何时发布事件,而模块B只需关心何时响应事件,它们无需知道彼此的存在。这种松散...

    人力资源管理模块附代码和文档

    本文将深入探讨一个基于PHP开发的人力资源管理模块,结合提供的代码和文档,来揭示其中的关键技术和实践应用。人力资源管理模块是企业管理的核心组成部分,它涵盖了员工信息管理、招聘流程、考勤记录、绩效评估、...

    学生课绩管理系统(由登陆模块,学生模块,教师模块,管理员模块)

    本文将深入探讨一个基于Servlet+Jsp+JavaBean+SQL2000技术的学生课绩管理系统,它包含了登陆模块、学生模块、教师模块以及管理员模块,旨在为高校提供一套高效、便捷的课绩管理解决方案。 首先,登陆模块是系统的...

    新闻发布系统网站模块

    【标签】中的"新闻发布系统"是指该模块的核心功能,即为用户提供一个平台,能够发布、编辑和管理新闻文章。"网站"表示这是应用于网站的软件组件,"模块"指的是该系统可以作为一个独立的部分嵌入到整体网站架构中。...

    综合教务管理系统模块设计

    综合教务管理系统模块设计是高等教育机构中至关重要的一个部分,它涵盖了教学管理的各个环节,旨在提升教学质量和效率,减轻教务人员的工作负担。本系统通常包括多个子模块,每个子模块都专注于特定的教学活动,例如...

    中澳宿舍管理系统功能模块图

    中澳宿舍管理系统是一个高效、全面的信息化管理平台,旨在优化宿舍管理工作,提升管理效率,确保学生住宿环境的安全与舒适。系统通过多个功能模块,实现了对学生信息、宿舍信息、卫生情况、费用管理、设备维修等多...

    《前端异步编程系列之事件发布/订阅模式》附件:eventjs模块

    例如,当多个组件需要响应同一个事件时,它们都可以订阅同一个事件,而无需知道是谁触发了这个事件。这极大地提高了代码的复用性和可维护性。 此外,事件发布/订阅模式在异步编程中的应用非常广泛。比如在处理Ajax...

    帝国cms免登陆发布模块.zip

    【标题】"帝国cms免登陆发布模块.zip"指的是一个针对帝国CMS内容管理系统设计的插件或功能模块,它允许用户在无需登录系统的情况下发布内容。这个特性对于网站访客或者某些特定用户群体来说非常方便,他们可以快速...

    zencart 新闻管理模块

    "新闻管理模块"是 ZenCart 系统中的一个重要组成部分,专门用于处理网站上的新闻发布和展示,为用户提供了一个方便、高效的信息发布平台。 ### 1. 模块介绍 新闻管理模块允许管理员在 ZenCart 商店中添加、编辑和...

    文档编写新闻发布系统模块

    模块化设计可以将这些复杂的功能分解为更小、更易于管理的部分,每个部分负责系统中的一个特定功能或一组相关功能。这种设计方式有以下几点优势: 1. **提高代码的可维护性**:模块化的代码结构清晰,易于理解,当...

    新帝国CMS 7.2和7.5适用免登陆新闻火车头发布模块.wpm

    标题提到的“新帝国CMS 7.2和7.5适用免登陆新闻火车头发布模块.wpm”是一个专门为这两个版本设计的插件,用于实现与新闻采集软件“火车头”(Lede)的无缝对接。 1. **火车头(Lede)发布模块**:火车头是一款高效...

Global site tag (gtag.js) - Google Analytics