当前位置: 首页 > 编程笔记 >

JS中自定义事件的使用与触发操作实例分析

颜宸
2023-03-14
本文向大家介绍JS中自定义事件的使用与触发操作实例分析,包括了JS中自定义事件的使用与触发操作实例分析的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了JS中自定义事件的使用与触发操作。分享给大家供大家参考,具体如下:

1. 事件的创建

JS中,最简单的创建事件方法,是使用Event构造器:

var myEvent = new Event('event_name');

但是为了能够传递数据,就需要使用 CustomEvent 构造器:

var myEvent = new CustomEvent('event_name', {
 detail:{
  // 将需要传递的数据写在detail中,以便在EventListener中获取
  // 数据将会在event.detail中得到
 },
});

2. 事件的监听

JS的EventListener是根据事件的名称来进行监听的,比如我们在上文中已经创建了一个名称为‘event_name' 的事件,那么当某个元素需要监听它的时候,就需要创建相应的监听器:

//假设listener注册在window对象上
window.addEventListener('event_name', function(event){
 // 如果是CustomEvent,传入的数据在event.detail中
 console.log('得到数据为:', event.detail);

 // ...后续相关操作
});

至此,window对象上就有了对‘event_name' 这个事件的监听器,当window上触发这个事件的时候,相关的callback就会执行。

3. 事件的触发

对于一些内置(built-in)的事件,通常都是有一些操作去做触发,比如鼠标单击对应MouseEvent的click事件,利用鼠标(ctrl+滚轮上下)去放大缩小页面对应WheelEvent的resize事件。
然而,自定义的事件由于不是JS内置的事件,所以我们需要在JS代码中去显式地触发它。方法是使用 dispatchEvent 去触发(IE8低版本兼容,使用fireEvent):

// 首先需要提前定义好事件,并且注册相关的EventListener
var myEvent = new CustomEvent('event_name', { 
 detail: { title: 'This is title!'},
});
window.addEventListener('event_name', function(event){
 console.log('得到标题为:', event.detail.title);
});
// 随后在对应的元素上触发该事件
if(window.dispatchEvent) { 
 window.dispatchEvent(myEvent);
} else {
 window.fireEvent(myEvent);
}
// 根据listener中的callback函数定义,应当会在console中输出 "得到标题为: This is title!"

需要特别注意的是,当一个事件触发的时候,如果相应的element及其上级元素没有对应的EventListener,就不会有任何回调操作。

对于子元素的监听,可以对父元素添加事件托管,让事件在事件冒泡阶段被监听器捕获并执行。这时候,使用event.target就可以获取到具体触发事件的元素。

PS:这里再为大家附上javascript系统自带事件参考表供大家参考查询:

javascript事件与功能说明大全:
http://tools.jb51.net/table/javascript_event

更多关于JavaScript相关内容可查看本站专题:《JavaScript事件相关操作与技巧大全》、《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

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

 类似资料:
  • 本文向大家介绍写例子说明js中自定义事件的使用与触发相关面试题,主要包含被问及写例子说明js中自定义事件的使用与触发时的应答技巧和注意事项,需要的朋友参考一下 CustomEvent-MDN

  • 本文向大家介绍js事件模型与自定义事件实例解析,包括了js事件模型与自定义事件实例解析的使用技巧和注意事项,需要的朋友参考一下 JavaScript 一个最简单的事件模型,需要有事件绑定与触发,还有事件删除。 其中主要实现了bind(绑定事件)、unbind(删除事件)与 trigger (触发事件)。对同一事件名称,可以绑定多个事件处理函数;并按照绑定的顺序依次触发。 args.splice(0

  • 本文向大家介绍Nodejs中自定义事件实例,包括了Nodejs中自定义事件实例的使用技巧和注意事项,需要的朋友参考一下 其实就是继承events的EventEmitter就可以了,然后就可以通过on去注册事件;emit去触发事件,removeListener去移除事件,简单例子如下: 这样自定义的Ticker就具有自定义事件的能力了

  • 问题内容: 我从android.app.Application派生了一个自定义应用程序,但无法触发它的onCreate事件。这是实现 这是我的使用方式: 问题答案: 在您的中添加以下内容 然后你会被解雇。

  • 本文向大家介绍JS代码触发事件代码实例,包括了JS代码触发事件代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了js代码触发事件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍js操作滚动条事件实例,包括了js操作滚动条事件实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js操作滚动条事件的方法。分享给大家供大家参考。具体分析如下: 之前一直很纳闷,如何监视滚动条的事件,今天终于有点明白了。 下边代码,是监听滚动条只要移动,下方的返回顶部的div显示与隐藏的代码 注: t:滚动条距离top端的距离 t>0,即滚动条一旦滚动,立即执行if()语句