js事件机制

事件监听

类似<button onclick="alert('你点击了这个按钮');">点击这个按钮</button>的方式,这种方式会使JS与HTML高度耦合,不利于开发和维护,不推荐使用。

DOM属性绑定

使用DOM元素的onXXX属性设置,简单易懂,兼容性好。确定是只能绑定一个处理函数。

事件监听函数

element.addEventListener(<event-name>, <callback>, <use-capture>);

移除事件监听

element.removeEventListener(<event-name>, <callback>, <use-capture>);

自定义事件 Event、CustomEvent 和 dispatchEvent。

1.直接自定义事件,使用 Event 构造函数:
var event = new Event('build'); // Listen for the event. elem.addEventListener('build', function (e) { ... }, false); // Dispatch the event. elem.dispatchEvent(event);
2.CustomEvent 可以创建一个更高度自定义事件,还可以附带一些数据,具体用法如下:
var myEvent = new CustomEvent(eventname, options);
其中options可以是:
{ detail: { ... }, bubbles: true, cancelable: false }
3.dispatchEvent这个用于触发自定义的事件。

事件代理

currentTarget

事件的Event对象比较常用的几个属性和方法:

  • type(string): 事件的名称,比如 “click”。
  • type(string): 事件的名称,比如 “click”。
  • preventDefault (function): 这个方法可以禁止一切默认的行为
  • stopPropagation (function):阻止事件冒泡

! IE浏览器下的情况

event = event || window.event使用 window.event 来获取事件对象
node = event.srcElement || event.target;处理触发事件的节点

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 事件 JavaScript和HTML的交互是通过事件实现的。JavaScript采用异步事件驱动编程模型,当文档、...
    bpup阅读 669评论 0 1
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,217评论 0 1
  • 事件流 事件流指从页面接收事件的顺序,分为冒泡(IE)和捕获 'DOM2级事件'规定的事件流包括三部分:捕获、处于...
    Jeremy_zhang阅读 993评论 0 1
  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock阅读 3,420评论 2 36
  • 平静的湖面 绽放的荷花那只蜻蜓在翩翩的起舞起舞 起舞 盘旋着忧伤的诉苦 我问你为何这样漫步你说那里有我记忆的追...
    弋夫阅读 157评论 1 2