新技术论坛
搜索
查看: 625|回复: 0
打印 上一主题 下一主题

[原生js] JavaScript实现为指定对象添加多个事件处理程序的方法

[复制链接]
  • TA的每日心情
    开心
    2016-10-18 06:23
  • 签到天数: 72 天

    连续签到: 1 天

    [LV.6]常住居民II

    扫一扫,手机访问本帖
    楼主
    跳转到指定楼层
    发表于 2016-3-17 06:10:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
            这篇文章主要介绍了JavaScript实现为指定对象添加多个事件处理程序的方法,可实现让指定对象处理多个事件的功能,具有一定参考借鉴价值,需要的朋友可以参考下

            本文实例讲述了JavaScript实现为指定对象添加多个事件处理程序的方法。分享给大家供大家参考。具体如下:

            如果你希望对象点击的时候同时处理多个事情,可以使用下面的代码
    1. /* Start of the multihandle Object...*/
    2. function MultiHandle(owner){
    3. var my_handlers = new Array();
    4. var my_owner = owner;
    5. this.append = function(handler){
    6.   my_handlers[my_handlers.length] = handler;
    7. }
    8. this.fire = function(evt){
    9.   var i;
    10.   for(i = 0; i < my_handlers.length; i++){
    11.    my_owner.tempspace = my_handlers[i];
    12.    my_owner.tempspace(evt);
    13.   }
    14. }
    15. }
    16. /* End of the multihandle object*/
    17. /* start of the object add event handler script */
    18.   
    19. /*This bit goes where you'd normally write...
    20. ... object.onmouseup = [event handler]...
    21. ... where [event handler] is an existing function ...
    22. ... that handles an event, or even an
    23. ... anonymous function.*/
    24. if(typeof(MultiHandle) != "undefined"){
    25. var mup_handler = object.mh_onmouseup;
    26. if(!mup_handler){
    27.   mup_handler = new MultiHandle(object);
    28.   object.mh_onmouseup = mup_handler;
    29.   object.onmouseup = function(evt){
    30.   this.mh_onmouseup.fire(evt);
    31.   };
    32. }
    33. mup_handler.append([event handler]);
    34. }else{
    35. object.onmouseup = [event handler];
    36. }
    复制代码


    希望本文所述对大家的JavaScript程序设计有所帮助。


    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    手机版|Archiver|开发者俱乐部 ( ICP/ISP证:辽B-2-4-20110106号 IDC证:辽B-1-2-20070003号 )

    GMT+8, 2024-12-25 00:04 , Processed in 0.132996 second(s), 19 queries .

    X+ Open Developer Network (xodn.com)

    © 2009-2017 沈阳讯网网络科技有限公司

    快速回复 返回顶部 返回列表