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

添加自定义事件

 
阅读更多
<html>
<head>
</head>
<body >
<button id="btn" >click</button>
</body>
</html>

<script type="text/javascript">
function BtnClick(evt){
	alert(this.id +" click");
}
var btn = document.getElementById("btn");

btn.onclick = BtnClick;
btn.attachEvent('onclick', BtnClick);
btn.myclick = BtnClick;
btn.myclick();//btn click

</script>

首先弹出btn click 这次执行的是 btn.myclick 这里我们给btn绑定了一个方法(这就给js添加自定义事件提供了先决条件)
然后单击btn 的时候会 依次 弹出 btn click 和 undefined click
第一次 是因为 btn.onclick 直接给btn 绑定了方法 而调用方法的上下文是 btn
所以this.id 就是btn的 id
第二次 btn.attachEvent('onclick', BtnClick);
其实我们可以写成 btn.attachEvent('onclick', window.BtnClick);
这样就是看出调用BtnClick 上下文是 window.

简单的添加自定义事件
// 添加自定义事件 
function addEvent(obj, type, handler){
	obj[type] = handler;//事件其实就是对象的一个属性 然后绑定一下可执行方法
}

// 移除自定义事件
function removeEvent(obj, type){
	delete obj[type];
}

// 触发/派发自定义事件
function dispatchEvent(obj, type){
	obj[type]();//执行对象绑定的方法
}
var btn= document.getElementById("btn");
function BtnClick(){alert(1);}
addEvent(btn, 'click', BtnClick);
dispatchEvent(btn, 'click'); 
分享到:
评论

相关推荐

    为jQuery添加自定义事件机制

    jQuery自定义事件插件 博文链接:https://ioryioryzhan.iteye.com/blog/245096

    给自定义控件添加事件并测试

    给自定义控件添加自定义事件,该事件在测试界面添加后可以显示,并通过双击设定事件的响应方法

    为C#自定义控件添加自定义事件

     希望事件响应代码推迟到使用自定义控件的窗体里写。  步骤一:新建一个用户控件,放两个按钮,Tag分别是btn1,btn2.  这两个按钮的共用单击事件处理代码如下: using System; using System.Collections....

    海典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 添加主...

    C# 自定义控件的属性和添加事件

    C# 自定义控件的属性 添加自定义控件的事件

    可显示月视图并添加自定义事件功能

    可显示月视图并添加自定义事件功能,源码DPCalendar,DPCalendar 可以展现月视图并允许用户添加自定义事件,该个源码也比较简单的,大家可以了解一下吧,频道ios源码频道免费提供下载。Monthly view calendar for ...

    自定义控件添加事件

    Winfrom中自定义控件-- 添加事件示例,自定义控件 为两个普通按钮组成,其他窗体添加自定义控件后,分别触发自定义控件中的事件...

    Qt自定义事件Demo

    1. **定义自定义事件类型:** 创建一个继承自`QEvent`的子类,并在子类中添加你需要的成员变量和方法。 2. **创建自定义事件对象:** 在需要的时候,创建你自定义事件类型的对象,传入构造函数中的参数,以便在事件...

    vue用ant design中table表格,点击某行时触发的事件操作

    使用customRow 设置行属性,写对应事件 ...补充知识:Ant-Design-Vue table 合并单元格,并且添加点击事件 点击行,有一个customRow。可以配置点击事件。 单元格的自定义分为两种方式。 一种是:通过tem

    jsEvents:向 Javascript 添加自定义事件。 这是 Coffeescript 中观察者设计模式的实现。 完全 TDD

    首先创建一个事件 事件 = 新的 jsEvents.Event 注册一个函数。 这将返回一个观察者对象。 您可以使用它来取消注册事件或向同一个观察者注册更多事件 观察者1 = event.register(名称)-&gt;警报名称 或者您可以自己...

    为控件添加自定义属性和事件

    为控件添加自定义属性和事件,供大家参考,有错误之处,请积极指出,大家相互学习

    Visual C++2010开发权威指南.part05

    11.5.2 添加自定义事件 463 11.6 ActiveX控件方法开发 464 11.6.1 添加常用方法 465 11.6.2 添加自定义方法 465 11.6.3 从方法返回错误代码 466 11.7 完整ActiveX控件范例 467 11.7.1 创建工程 467 11.7.2 Clock控件...

    给自定义对象加上自定义事件的支持的教程

    我一般是不看别人写的代码的,为啥?累!而且这位同志给的还是经过压缩...自定义事件 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]示例中,自定义了一个:JCEvent,c1,c2,c3都是这它的实例。 每个实例都有一个

    自定义AlterDialog,并给控件添加监听事件

    自定义的AlterDialog,并给自定义的布局添加监听事件,使弹出框更符合项目要求,与项目的主题更加贴合

    【JavaScript源代码】Vue+element-ui添加自定义右键菜单的方法示例.docx

    Vue+element-ui添加自定义右键菜单的方法示例  1、在所编辑的页面,需要添加右键菜单的元素,绑定contextmenu事件 &lt;template&gt;  @contextmenu.prevent.native="openMenu($event)"&gt; ...... &lt;/template&gt; 2、在...

    从Node.js事件触发器到Vue自定义事件的深入讲解

    Node.js中的事件触发器所引发的思考 今天在看 Node.js 文档的时候讲到事件触发器,其中的 emit 方法让我想到了 Vue 中的自定义事件,借此我对 Vue 又有了新的理解,所以将我的理解记录下来,... on 用于添加自定义事件

    【JavaScript源代码】vue添加自定义右键菜单的完整实例.docx

    vue添加自定义右键菜单的完整实例  一、写原生方法  1.在所编辑的页面,需要添加右键菜单的元素,绑定contextmenu事件,如下:  v-for="item in resourceList" :key="item.id" @click="handleClickFolder(item...

    精通ASP.NET.4.0网络编程 part-2

    第1篇ASP.NET网络开发关键技术第1章ASP.NET网络开发基础(教学视频87分钟)1.1...添加自定义事件1.6自定义控件1.6.1自定义控件概述1.6.2创建和使用简单的自定义控件1.6.3添加属性1.6.4状态保持概述1.6.5视图状态ViewState...

    精通ASP.NET.4.0网络编程 part-1

    第1篇ASP.NET网络开发关键技术第1章ASP.NET网络开发基础(教学视频87分钟)1.1...添加自定义事件1.6自定义控件1.6.1自定义控件概述1.6.2创建和使用简单的自定义控件1.6.3添加属性1.6.4状态保持概述1.6.5视图状态ViewState...

    android studio自定义标题栏,可自定义回退按钮事件

    android studio 自定义标题栏,自定义回退按钮事件,自定义右侧显示文字还是图片,自定义右侧点击事件

Global site tag (gtag.js) - Google Analytics