- <html>
-
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- <title>给对象增加一个简单的自定义事件机制</title>
- </head>
-
- <body>
- <script type="text/javascript">
- function MyObject()
- {
- // 保存事件监听函数数组
- this.RunEventListeners = new Array();
- }
-
- MyObject.prototype.Run = function()
- {
- // 在这里实现Run方法的代码并且触发
- // 下边是激活onrun事件
- for(var i = 0; i < this.RunEventListeners.length; i++)
- this.RunEventListeners[i](this);
- }
-
- MyObject.prototype.AddEvent = function(name, listener)
- {
- switch(name.toLowerCase())
- {
- case "onrun":
- this.RunEventListeners[this.RunEventListeners.length] = listener;
- break;
- // 还可以在这里增加各种事件,最好判断一下该listener是事已经被添加,以免重复执行,不过这里省了
- default:
- break;
- }
- }
-
- function OnRun1(sender)
- {
- alert("已经执行了OnRun1事件")
- }
-
- function OnRun2(sender)
- {
- alert("已经执行了OnRun2事件");
- }
-
- var myobj = new MyObject();
-
- // 添加两个监听函数
- myobj.AddEvent("onrun", OnRun1);
- myobj.AddEvent("onrun", OnRun2);
-
-
- // 执行Run方法,如无例外,会触发onrun事件
- myobj.Run();
- </script>
- </body>
-
- </html>
转载于:https://www.cnblogs.com/shihao/archive/2012/03/28/2421908.html