zoukankan      html  css  js  c++  java
  • 给对象增加一个简单的自定义事件机制

    1. <html>

    2. <head>
    3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    4. <title>给对象增加一个简单的自定义事件机制</title>
    5. </head>

    6. <body>
    7. <script type="text/javascript">
    8. function MyObject()
    9. {
    10.         // 保存事件监听函数数组
    11.         this.RunEventListeners = new Array();
    12. }

    13. MyObject.prototype.Run = function()
    14. {
    15.         // 在这里实现Run方法的代码并且触发
    16.         // 下边是激活onrun事件
    17.         for(var i = 0; i < this.RunEventListeners.length; i++)
    18.                 this.RunEventListeners[i](this);
    19. }

    20. MyObject.prototype.AddEvent = function(name, listener)
    21. {
    22.         switch(name.toLowerCase())
    23.         {
    24.                 case "onrun":
    25.                         this.RunEventListeners[this.RunEventListeners.length] = listener;
    26.                         break;
    27.                 // 还可以在这里增加各种事件,最好判断一下该listener是事已经被添加,以免重复执行,不过这里省了
    28.                 default:
    29.                         break;
    30.         }
    31. }

    32. function OnRun1(sender)
    33. {
    34.         alert("已经执行了OnRun1事件")
    35. }

    36. function OnRun2(sender)
    37. {
    38.         alert("已经执行了OnRun2事件");
    39. }

    40. var myobj = new MyObject();

    41. // 添加两个监听函数
    42. myobj.AddEvent("onrun", OnRun1);
    43. myobj.AddEvent("onrun", OnRun2);


    44. // 执行Run方法,如无例外,会触发onrun事件
    45. myobj.Run();
    46. </script>
    47. </body>

    48. </html>
  • 相关阅读:
    tiled工具使用
    shan
    随笔
    潘大神又一篇
    潘大神的文章
    最近用到这个强大的工具 PhysicsEditor (转)
    为什么要写博客?
    nyoj 998
    欧拉函数
    背包问题
  • 原文地址:https://www.cnblogs.com/shihao/p/2421908.html
Copyright © 2011-2022 走看看