Javascript CustomEvent

Javascript CustomEvent

  原文链接 https://davidwalsh.name/customevent,看到一篇介绍自定义事件的文章 翻译一下,不足之处,还请指正。

  自浏览器诞生以来,javascript event一直是用户交互的方式。调用事件不仅告诉了我们发生了什么,而且告诉了我们是什么类型的交互,设计的DOM节点,还有事件调用的方法。创建并调用自定义事件是一个很棘手的事情。用javascript的自定义时间的API可以消除这些问题。CustomEvent API 不仅允许开发者自定义事件,而且在节点上触发他们。最重要的是这个API超级简单.

  The Javascript

  当时用自定义事件的时候,有两个参数(组件)需要被“定制”:1,自定义事件的名称。2触发这个事件所做的事情(回调函数).给一个元素添加一个事件处理程序,一切照旧。

  

myElement.addEventListener("userLogin", function(e) {
    console.info("Event is: ", e);
    console.info("Custom data is: ", e.detail);
})

  这里我们添加了一个 userLogin 事件,就像我们添加mouseover 事件一样简单,这没有什么特别的。特殊的部分是创建和触发自定义事件.

// First create the event
var myEvent = new CustomEvent("userLogin", {
    detail: {
        username: "davidwalsh"
    }
});

// Trigger it!
myElement.dispatchEvent(myEvent);

  new一个CustomEvent构造函数的实例允许你通过两个特殊的属性事件名称和数量来创建自定义事件。dispatchEvent触发事件在给定的元素。让我们通过两个参数bubbling, cancelable来触发自定义事件。

  参数如下:

var myEvent = new CustomEvent("userLogin", {
    detail: {
        username: "davidwalsh"
    },
    bubbles: true,
    cancelable: false
});

  通过自定义数据来创建自定义事件难以置信的有用,你不仅可以创建你自己约定命名的自定义事件,而且可以传递自定义数据。你可以查看https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent确保浏览器的支持,但是这个API只有最新的浏览器才可以使用。

时间: 2024-08-25 08:36:48

Javascript CustomEvent的相关文章

javascript和jquey的自定义事件小结

“通过事件机制,可以将类设计为独立的模块,通过事件对外通信,提高了程序的开发效率.” 可以把多个关联但逻辑复杂的操作利用自定义事件的机制灵活地控制好 对象之间通过直接方法调用来交互 1)对象A直接调用对象B的某个方法,实现交互:直接方法调用本质上也是属于一种特殊的发送与接受消息,它把发送消息和接收消息合并为一个动作完成: 方法调用方和被调用方被紧密耦合在一起:因为发送消息和接收消息是在一个动作内完成,所以无法做到消息的异步发送和接收: 2)对象A生成消息->将消息通知给一个事件消息处理器(Obs

读javascript高级编程11-事件

一.事件流 事件流指从页面中接收事件的顺序. 1.事件冒泡(常用) IE中采用的事件流是事件冒泡,先从具体的接收元素,然后逐步向上传播到不具体的元素. 2.事件捕获(少用) Netscapte采用事件捕获,先由不具体的元素接收事件,最具体的节点最后才接收到事件. 3.DOM事件流 DOM2级事件包括三个阶段:事件捕获阶段.处于目标阶段和事件冒泡阶段. 二.事件处理程序 事件处理程序就是响应某些事件的函数,如onclick等. 1. DOM0级事件处理程序 每个元素都有自己的事件处理程序属性,如o

JavaScript高级程序设计51.pdf

(续上篇) 模拟鼠标事件 var btn=document.getElementById("myBtn"); //创建事件对象 var event=document.createEvent("MouseEvents"); //初始化事件对象 event.initMouseEvent("click",true,true,document.defaultView,0,0,0,0,0,false,false,false,false,0,null); /

《javascript高级程序设计》笔记(十三)

---恢复内容开始--- 事件 (一)事件流 描述从页面接收事件的顺序. 1.事件冒泡 IE的事件流,从最具体的元素接收,逐级向上传播到不具体的节点. IE9 Fireofx Chrome Safari将事件一直冒泡到window对象 2.事件捕获 不太具体的节点应更早接受事件. 3.DOM事件流 包括三个阶段:事件捕获阶段.处于目标阶段和事件冒泡阶段. IE8及更早版本不支持DOM事件流. (二)事件处理程序 相应某个事件的函数,名字以on开头. 1.HTML事件处理程序 <input typ

JavaScript(六)——实现图片上下或者左右无缝滚动

/*! jQuery v1.8.3 jquery.com | jquery.org/license */ (function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toL

JavaScript高级程序设计:第十三章

第十三章 一.理解事件流 事件流描述的是从页面中接收事件的顺序. 1.事件冒泡 IE的事件流叫做事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点.以下面的HTML页面为例: <!DOCTYPE html> <html> <head> <title>Event Bubling Example</title> </head> <body> <div id="myDiv"&g

Javascript Tips &amp; Tricks

前端开发规范系列文章之Javascript Tips and Tricks,本意是写成常用代码收集.常用技巧整理的文章,感觉"常用代码大全"太土."实用代码整理"有失偏颇,"提示与技巧"不够稳重,所以使用常用的英语说法,相信广大程序员都懂得. 妙味 Javascript美妙之处,需要我们静静体会,慢慢吸收,然后让代码在您指下曼舞.整理的这些代码我们称之为妙味,请大家细品. 博主会不断更新本文,方便大家阅读起见,我们采用倒序更新的方式,把最新更新的

理解javascript观察者模式(订阅者与发布者)

什么是观察者模式? 观察者模式又叫做发布订阅模式,它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生改变时就会通知所有观察着对象.它是由两类对象组成,主题和观察者,主题负责发布事件,同时观察者通过订阅这些事件来观察该主体,发布者和订阅者是完全解耦的,彼此不知道对方的存在,两者仅仅共享一个自定义事件的名称. 理解观察者模式: JS传统事件就是一个观察者模式,之所以要有观察者模式,是因为有时候和传统事件无关的事件,比如:2个或者更多模块的直接通信问题,比如说我有

最详细的JavaScript和事件解读

与浏览器进行交互的时候浏览器就会触发各种事件.比如当我们打开某一个网页的时候,浏览器加载完成了这个网页,就会触发一个 load 事件:当我们点击页面中的某一个“地方”,浏览器就会在那个“地方”触发一个 click 事件. 这样,我们就可以编写 JavaScript,通过监听某一个事件,来实现某些功能扩展.例如监听 load 事件,显示欢迎信息,那么当浏览器加载完一个网页之后,就会显示欢迎信息. 下面就来介绍一下事件. 基础事件操作 监听事件 浏览器会根据某些操作触发对应事件,如果我们需要针对某种