文档章节

javascript实现简化版的events

bosscheng
 bosscheng
发布于 2014/10/28 14:06
字数 182
阅读 11
收藏 0
var org = org || {};
// the minimal events support
var eventCache = org.events = {};

// bind event
org.on = function(event,callback){
	if(!callback) return org;
	var list = eventCache[event] || (eventCache[event] = []);
	list.push(callback);
	return org;
}

// remove event , if 'callback' is undefined, remove all callbacks for the event.
// if 'event' and 'callback' are both undefined, remove all callbacks for all events
org.off = function(event,callback){
	if(!(event || callback){
		org.events = eventCache = {};
		return org;
	}

	var list = eventCache[event;
	if(list){
		if(callback){
			for (var i = list.length - 1; i >= 0; i--) {
				if(list[i] === callback){
					list.splice(i,1);
				}
			};
		}
		else{
			delete eventCache[event];
		}
	}
}

// emit event, firing all bound callbacks , callbacks are passed the same argumants
// as 'emit' is .apart from the event name
org.emit = function(event,data){
	var list = eventCache[event];
	var fn;

	if(list){
		list = list.slice();

		while((fun = list.shift())){
			fn(data);
		}
	}
	return org;
}


© 著作权归作者所有

bosscheng
粉丝 81
博文 303
码字总数 95443
作品 0
南京
前端工程师
私信 提问
几点建议帮你写出简洁的JS代码

译者按: 规范的代码可以有效避免代码bug,fundebug才会报警少一点! 原文: Tips for Writing Cleaner Code 译者: Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所...

Fundebug
2017/07/13
0
0
第一章 JavaScript简介《JavaScript高级程序设计》

本系列文章是《JavaScript高级程序设计》(第二版) 中文 的缩水版,希望通过对书籍内容的转述,一方面能加深自己对于JavaScript的理解,另一方面也能让其他人学习了解JavaScript这门语言。如有...

walala_Lee
2013/07/04
0
3
javascript——从「最被误解的语言」到「最流行的语言」

JavaScript曾是“世界上最被误解的语言”,因为它担负太多的特性,包括糟糕的交互和失败的设计,但随着Ajax的到来,JavaScript“从最受误解的编程语言演变为最流行的语言”,这除了幸运之外,...

modernizr
2014/05/20
1K
12
jQuery for Asp.Net 开发环境配置

1.jQuery概述 jQuery是一个优秀的JavaScript框架,是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。 目前jQu...

长平狐
2013/06/17
88
0
Wt::JSlot Class Reference

A slot that is only implemented in client side JavaScript code. More... 【JSlot是一种槽,只被客户端JavaScript代码(去)实现】 List of all members. Detailed Description A slot t......

zhmsong
2012/01/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Jenkins的配置

1 修改jenkins的根目录,默认地在C:\Documents and Settings\AAA\.jenkins 。 .jenkins ├─jobs │ └─JavaHelloWorld │ ├─builds │ │ ├─2011-11-03_16-48-17 │ │ ├─2011-11-0......

shzwork
27分钟前
1
0
使用 spring 的 IOC 解决程序耦合

工厂模式解耦 在实际开发中我们可以把三层的对象都使用配置文件配置起来,当启动服务器应用加载的时候,让一个类中的方法通过读取配置文件,把这些对象创建出来并存起来。在接下来的使用的时...

骚年锦时
31分钟前
1
0
group by分组后获得每组中时间最大的那条记录

用途: GROUP BY 语句用于 对一个或多个列对结果集进行分组。 例子: 原表: 现在,我们希望根据USER_ID 字段进行分组,那么,可使用 GROUP BY 语句。 我们使用下列 SQL 语句: SELECT ID,US...

豆花饭烧土豆
今天
3
0
android6.0源码分析之Camera API2.0下的Preview(预览)流程分析

本文将基于android6.0的源码,对Camera API2.0下Camera的preview的流程进行分析。在文章android6.0源码分析之Camera API2.0下的初始化流程分析中,已经对Camera2内置应用的Open即初始化流程进...

天王盖地虎626
今天
4
0
java 序列化和反序列化

1. 概述 序列恢复为Java对象的过程。 对象的序列化主要有两 首先我们介绍下序列化和反序列化的概念: 序列化:把Java对象转换为字节序列的过程。 反序列化:把字节序列恢复为Java对象的过程。...

edison_kwok
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部