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

自定义事件

 
阅读更多
/**
* 自定义事件
* 一般需要实现3个方法
* addEvent fire和remove
*/
function CustomEvent(){
	this._listeners = {};
}
CustomEvent.prototype = {
	constructor: CustomEvent,
	addEvent: function(type, listener){
		if(typeof this._listeners[type] == "undefined"){
			this._listeners[type] = [];
		}
		
		this._listeners[type].push(listener);
	},
	
	fire: function(event){
		if(typeof event == "string"){
			event = {type : event};
		}
		if(!event.target){
			event.target = this;
		}
		if(!event.type){
			throw new Error("Event object missting type property.");
		}
		if(this._listeners[event.type] instanceof Array){
			var listeners = this._listeners[event.type];
			for(var i = 0 , len = listeners.length ; i < len ; i++){
				listeners[i].call(this, event);
			}
		}
	},
	remove: function(type, listener){
		if(this._listeners[type] instanceof Array){
			var listeners = this._listeners[type];
			for(var i = 0 , len = listeners.length ; i < len ; i++){
				if(listeners[i] === listener){
					listeners.splice(i, 1);
					break;
				}
			}
		}
	}
	
}

 

分享到:
评论

相关推荐

    FreeSwitch完整的自定义模块定义和改善自定义事件的例子

    本篇文章将深入探讨如何定义和优化自定义模块,以及处理自定义事件。 首先,理解FreeSwitch模块的生命周期是至关重要的。一个模块通常包括加载、初始化、运行和卸载四个阶段。在加载阶段,模块被FreeSwitch核心加载...

    C# 自定义 事件 和 触发自定义事件,显示子窗体传过来的值

    自定义事件则是对系统内置事件的扩展,让我们能够根据具体需求创建和处理自己的事件。本篇文章将深入探讨如何在C#中自定义事件以及如何触发这些事件,同时展示如何在窗体之间传递数据,特别是从子窗体到父窗体。 ...

    海典H1自定义事件框架浅说.doc

    海典H1自定义事件框架浅说 1、窗口概述 2 2、窗口相关事件 3 1、打开窗口 3 key事件 4 timer事件 4 2、保存数据 4 1、 pfc_begintran 4 3、 pfc_endtran 4 4、 Pfc_save 4 3、关闭窗口 4 3、数据窗口事件 5 添加主...

    flex4自定义事件用法

    自定义事件是Flex开发中的一个重要概念,允许开发者扩展内置事件系统,以满足特定项目的需要。下面将详细介绍Flex4自定义事件的用法,以及如何在一个完整的项目中导入和运行。 1. **创建自定义事件类** - 首先,...

    在VC中实现自定义事件的编程C++源代码程序小实例

    在VC(Visual C++)中实现自定义事件的编程是一个重要的技能,特别是在开发Windows应用程序时。自定义事件允许程序员扩展标准事件处理机制,创建特定于应用的交互逻辑。本实例将探讨如何在C++中利用MFC(Microsoft ...

    自定义事件与参数(C#)

    ### 自定义事件与参数(C#) 在C#编程中,事件是一种特殊的委托类型,用于封装方法调用,这些方法通常响应对象状态的变化或其他动作的发生。事件是.NET框架中的一个核心概念,它允许对象之间进行通信,而无需彼此...

    自定义事件(java).doc

    在Java编程中,自定义事件(Custom Events)是一种常见的设计模式,用于在对象之间传递信息。自定义事件允许我们创建特定于应用的事件类型,以便更好地处理和响应应用程序中的特定情况。以下是一个简单的自定义事件...

    教你如何在java中自定义事件

    在Java编程中,自定义事件是扩展应用程序功能和实现组件间通信的重要手段。当你需要在类之间传递特定信息或触发特定行为时,自定义事件能提供极大的灵活性。本教程将深入探讨如何在Java中创建并使用自定义事件,以...

    ActionScript的自定义组件及自定义事件例子

    在本实例中,我们将深入探讨如何在ActionScript中实现自定义组件和自定义事件,这对于创建复杂的Flash应用程序至关重要。 首先,让我们了解自定义组件。在ActionScript中,自定义组件是通过继承已有的UIComponent...

    Qt 自定义事件

    在Qt框架中,自定义事件是扩展系统事件处理机制的一种方式,这允许开发者根据特定需求创建并传递自己的事件类型。自定义事件对于跨线程通信尤其有用,因为在多线程环境中,直接修改非本线程对象的状态通常是不允许的...

    VB6用户自定义事件EVENT实例.zip

    VB用户自定义事件绕来绕去的,翻了半天书也不好弄清楚,最后还是仔细翻看MSDN的事例弄有了。我把它贴成了VB可运行工程,试运行一下就很有体验感了,学起来省时省力。取之于MSDN用之于需要的学习,不需要消耗积分。

    基于MFC(QT)的OSG的自定义事件2

    在探讨基于MFC(或QT)的OSG(OpenSceneGraph)自定义事件方法时,首先要明确OSG的基本概念和MFC、QT的事件处理机制。MFC(Microsoft Foundation Classes)和QT都是用于开发Windows应用程序的框架,它们提供了丰富的...

    labview自定义事件.vi

    labview自定义事件.vi labview自定义事件.vi

    C#自定义事件

    自定义事件是C#中一个非常重要的特性,它允许开发者根据自己的需求设计事件处理流程。本篇将深入探讨如何在C#中定义自定义事件,以及它们在实际开发中的应用。 首先,事件是基于委托(Delegate)的,委托在C#中相当...

    javascript实现自定义事件

    javascript实现自定义事件,纯javascript不含vbscript。 通过自定义的HashMap.js和EventManager.js实现自定义事件的监听addEvent和发布fireEvent

    java自定义事件

    Java 自定义事件是Java编程中一个重要的概念,它允许开发者创建自己的事件机制,以实现不同组件之间的通信。在Java中,事件处理主要依赖于事件源(Event Source)、事件(Event)和事件监听器(EventListener)。当...

    Qt自定义事件

    本篇将深入探讨如何通过继承`QEvent`类来自定义事件,并介绍如何使用`postEvent`和`sendEvent`函数来处理这些自定义事件。 ### 自定义事件 1. **继承QEvent**: 自定义事件的第一步是创建一个新的C++类,该类继承...

    cocos2dx-lua 自定义事件类

    cocos2dx-lua 自定义事件类

    as3典型的自定义事件模板

    张志晨:as3语言,最为典型的自定义事件 模板,可以自己修改并扩充。

Global site tag (gtag.js) - Google Analytics