文档章节

js自定义事件

代码诱惑
 代码诱惑
发布于 2014/06/05 18:17
字数 252
阅读 39
收藏 0

自定义事件:js的自定义事件是用的观察者的设计模式,有主体和观察者两部分组成,主体对象不在乎是否有观察者依然可以运行,观察者对主体动作观察,当主体发布事件后,观察者捕获事件后运行代码(自我感觉,是主体通知注册的观察者,告诉观察者事件的发生)。下面以一个简单的小例子来创建一个自定义事件

<script>
    (function(w){
        function MyEventTest(){  //主体对象
            this.mapHandlers = {};
            this.name = "";
        }
        //在原型链上创建,避免每次new再次创建
        MyEventTest.prototype = { 
            constructor : MyEventTest,
            
            addListener : function(type,handler){
               this.mapHandlers[type] = handler;
            },
            fire : function(event){
                if(!event.target){
                    event.target = this; //把主体对象绑定到event.target
                }
                this.mapHandlers[event.type](event);
            },
            setName : function(value){
                if(typeof value == 'string'){
                    this.name = value;
                    if(this.mapHandlers['afterSetName']){
                        this.fire({type:'afterSetName',name:value});
                    }
                }
            }
        };
        //绑定到window
        w.jQuery = w.$ = MyEventTest;
    })(window);
    
    var target  = new jQuery();
    //注册监听事件
    target.addListener('afterSetName',function(event){
        alert(event.name);
    });
    target.setName("小强");//setName会触发注册的事件
</script>


© 著作权归作者所有

上一篇: swift初学总结
下一篇: js简单模仿HashMap
代码诱惑
粉丝 1
博文 5
码字总数 3223
作品 0
济南
程序员
私信 提问
「React Native」与「Android」的交互方式总结

React Native 作为一个混合开发解决方案,因为业务、性能上的种种原因,总是避免不了与原生进行交互。在开发过程中我们将 RN 与原生交互的几种方式进行了梳理,按照途径主要分为以下几类: ...

WirelessSprucetec
06/16
0
0
JavaScript入门指南(学习笔记)

本片文章记录一下当时自己学习JavaScript的过程以及一些知识点和注意事项,从基础到中高级的内容都有,会以章节的形式慢慢展示出来 学前准备 学习基础:DIV+CSS基础扎实 开发工具: sublime/web...

番茄炒蛋少放糖
09/13
0
0
asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结

通常javascript代码可以与HTML标签一起直接放在前端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿;所以一般有良好开发习惯的程序员都会...

黄献
2012/11/04
956
0
WKWebView与js交互之完美解决方案

 随着H5功能愈发的强大,没进行过混合开发的小伙们都不好意思说自己能够独立进行iOS的app开发,在iOS7操作系统下,常用的native,js交互框架有easy-js,WebViewJavascriptBridge,以及结合jav...

HeroHY
2017/05/15
34
0
Cocos2d-JS事件处理机制

在很多图形用户技术中,事件处理机制一般都有三个重要的角色:事件、事件源和事件处理者。事件源是事件发生的场所,通常就是各个视图或控件,事件处理者是接收事件并对其进行处理的一段程序。...

智捷课堂
2015/03/31
173
0

没有更多内容

加载失败,请刷新页面

加载更多

【Go专家编程】defer这里有个坑

前言 项目中,有时为了让程序更健壮,也即不panic,我们或许会使用recover()来接收异常并处理。 比如以下代码: func NoPanic() {if err := recover(); err != nil {fmt.Println("Recov...

恋恋美食
23分钟前
2
0
20190920笔记

扩展: bashrc和bash_profile http://ask.apelearn.com/question/7719 http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html echo 颜色 http://www.cnblogs.com/lr-ting/archi......

徐-锐
38分钟前
1
0
Shiro整合Redis代码解读

1. shiro默认使用的MemoryConstrainedCacheManager创建MapCache来保存缓存数据。manager和cache对象之间的关系可以参考笔者的另一篇文章,Springboot Redis详解。 2. shiro整合Redis的关键就...

sunranhou
今天
4
0
关闭服务

题目要求 在centos6系统里,我们可以使用ntsysv关闭不需要开机启动的服务,当然也可以使用chkconfig工具来实现。 写一个shell脚本,用chkconfig工具把不常用的服务关闭。脚本需要写成交互式的...

wzb88
今天
6
0
面试官:兄弟,说说 Spring Cloud 的核心架构原理吧

最近在补一些分布式系列的面试内容,提前几个月做做准备吧,你们懂的,也跟大家分享分享。现在分布式系统基本上都是标配了,如果你现在还在玩儿单机,没有接触过这些东西的话,权当是为你打开...

咪咪家的汪汪
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部