`
cxy020
  • 浏览: 63591 次
  • 性别: 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添加自定义事件机制,这将帮助开发者扩展jQuery的功能,实现更加个性化的交互逻辑。 首先,我们要了解jQuery的事件系统是基于浏览器的事件模型构建的。默认情况下,jQuery提供了如click...

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

    本文将详细介绍如何为C#自定义控件添加自定义事件,以便将事件响应代码推迟到使用这些控件的主窗体中编写,提高代码的可维护性和可重用性。 首先,我们来理解自定义控件的基本概念。自定义控件通常由一个或多个基础...

    FreeSwitch完整的自定义模块定义和改善自定义事件的例子

    本篇文章将深入探讨如何定义和优化自定义模块,以及处理自定义事件。 首先,理解FreeSwitch模块的生命周期是至关重要的。一个模块通常包括加载、初始化、运行和卸载四个阶段。在加载阶段,模块被FreeSwitch核心加载...

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

    本教程将向你展示如何为自定义对象添加自定义事件的支持。 首先,我们来理解什么是自定义事件。在JavaScript中,事件是程序中的特定时刻或动作,例如用户点击按钮、页面加载完成等。自定义事件则是开发者根据需求...

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

    flex4自定义事件用法

    - 要响应自定义事件,需要在目标组件上添加事件监听器。可以使用`addEventListener()`方法,传入自定义事件的类型、监听函数和可选的捕获阶段参数。 5. **处理事件** - 监听函数将被调用,当自定义事件被派发时。...

    自定义控件添加事件

    在`CustomButtonPair`类中,为每个按钮添加`Click`事件的处理程序,并在其中触发对应的自定义事件。 ```csharp private void button1_Click(object sender, EventArgs e) { OnButton1Click(EventArgs.Empty); } ...

    ActionScript的自定义组件及自定义事件例子

    4. **监听事件**:在接收方组件中,使用`addEventListener()`方法添加事件监听器,处理自定义事件。 在提供的“WinCCALLMine”文件中,可能包含了实现这些概念的源代码示例。你可以通过查看和运行这些代码,更深入...

    C#制作用户自定义控件 可自选按钮素材、图标、事件、方法 非常好

    // 添加自定义事件,如点击事件 public event EventHandler&lt;EventArgs&gt; CustomClick; } ``` 2. **设置按钮素材** 通过设置`Icon`属性,你可以为自定义按钮添加图标。图标可以是`.ico`、`.png`或其他支持的图像...

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

    在使用自定义控件的应用程序中,开发人员可以像处理任何其他控件的事件一样处理自定义事件。只需将事件处理程序连接到控件的事件即可: ```csharp myCustomControl.CustomClick += MyCustomControl_CustomClick; ...

    在VC中实现自定义事件的编程C++源代码程序小实例

    在VC(Visual C++)中实现自定义事件的编程是一个重要的技能,特别是在开发Windows应用程序时。自定义事件允许程序员扩展标准事件处理机制,创建特定于应用的交互逻辑。本实例将探讨如何在C++中利用MFC(Microsoft ...

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

    为了测试事件是否正常工作,我们需要创建一个测试界面并在其中添加自定义控件。在设计视图中,可以通过属性窗口找到并双击“CustomEvent”事件,这将自动生成事件处理程序方法。例如: ```csharp private void ...

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

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

    自定义事件(java).doc

    `MyChangeEvent`类添加了一个名为`myname`的私有字符串字段,表示自定义事件的具体信息: ```java public class MyChangeEvent extends EventObject { private String myname; public MyChangeEvent(Object ...

    java自定义事件

    // 添加自定义属性,例如事件数据 private String eventData; public MyCustomEvent(Object source, String eventData) { super(source); this.eventData = eventData; } // 提供访问自定义属性的方法 ...

    教你如何在java中自定义事件

    这里,我们扩展了`EventObject`,并添加了一个`eventData`属性来存储自定义事件的数据。 2. 定义事件类型ID:如果你的自定义事件需要继承`AWTEvent`或其子类,你需要为事件分配一个唯一的类型ID,以便在事件处理中...

    VB6用户自定义事件EVENT实例.zip

    VB用户自定义事件绕来绕去的,翻了半天书也不好弄清楚,最后还是仔细翻看MSDN的事例弄有了。我把它贴成了VB可运行工程,试运行一下就很有体验感了,学起来省时省力。取之于MSDN用之于需要的学习,不需要消耗积分。

    Qt自定义事件Demo

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

    C#自定义事件

    自定义事件是C#中一个非常重要的特性,它允许开发者根据自己的需求设计事件处理流程。本篇将深入探讨如何在C#中定义自定义事件,以及它们在实际开发中的应用。 首先,事件是基于委托(Delegate)的,委托在C#中相当...

Global site tag (gtag.js) - Google Analytics