DOM事件机制

DOM事件级别

  • DOM0级事件:on绑定的事件。缺点是一个事件的处理程序只能对应一个函数
  • DOM2级事件:监听事件。原生两个方法用来移除和添加事件。addEventListener()和removeEventListener()
em.addEventListener('事件名称',事件处理程序,'true:捕获阶段,false:冒泡阶段')
  • DOM3级事件:添加了UI、焦点、鼠标、滚轮、文本、键盘、合成等事件

事件捕获、事件冒泡

  • 事件执行顺序:事件捕获->目标事件绑定函数->事件冒泡
  • 阻止事件冒泡:
1. event.stopPropagation()
2. return false//阻止了事件本身

事件代理

原理:把事件处理器添加到了父元素,等待子元素事件冒泡,并且父元素能够通过target判断是哪个目标元素。

<body>
    <ul id="color-list">
        <li>red</li>
        <li>orange</li>
        <li>yellow</li>
        <li>green</li>
        <li>blue</li>
        <li>indigo</li>
        <li>purple</li>
    </ul>
    <script>
    (function() {
        var colorList = document.getElementById("color-list");
        colorList.addEventListener('click', showColor, false);

        function showColor(e) {
            e = e || window.event;
            var targetElement = e.target || e.srcElement;
            if (targetElement.nodeName.toLowerCase() === "li") {
                alert(targetElement.innerHTML);
            }
        }
    })();
    </script>
</body>

好处:提高性能。

event

window对象的event对象。常用方法

  • event.preventDefault():阻止默认的事件。比如a标签的跳转。
  • event.stopPropagation():阻止冒泡
  • event.stopImmediatePropagation():阻止剩余的事件处理函数的执行,并防止当前事件在DOM树上冒泡
  • event.target:target事件属性可返回事件的目标节点,如生成事件的元素、文档或窗口
  • event.currentTarget:当前事件所绑定的元素。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 本文主要介绍: DOM事件级别 DOM事件流 DOM事件模型 事件代理 Event对象常见的方法和属性 一、...
    xyyojl阅读 1,279评论 0 3
  • 前言 本文主要介绍DOM事件级别、DOM事件模型、事件流、事件代理和Event对象常见的应用,希望对你们有些帮助和...
    浪里行舟阅读 646评论 0 3
  • 前言 转载文,本文主要介绍DOM事件级别、DOM事件模型、事件流、事件代理和Event对象常见的应用,希望对你们有...
    强哥科技兴阅读 329评论 0 1
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,581评论 1 11
  • js之事件机制 1、事件初探 1.1 js事件的概述 JavaScript事件:JavaScript是基于事件驱动...
    道无虚阅读 2,446评论 0 2