事件传播

事件的默认传播机制
-> 捕获阶段: 从外向内依次查找元素
-> 目标阶段: 当前事件源本身的操作
-> 冒泡阶段: 从内到外依次触发相关行为(最常用的就是冒泡阶段)

使用DOM 0级事件绑定给元素的某一个行为绑定的方法,都是在行为触发后的冒泡阶段把方法执行的。

    outer.onclick = function (e) {
        console.log('outer');
        console.log(e);
    }
    inner.onclick = function (e) {
        console.log('inner');
        console.log(e);
    }
    center.onclick = function (e) {
        console.log('center');
        console.log(e);
    }
    document.body.onclick = function (e) {
        console.log('body');
        console.log(e);
    }

addEventListener: 第一个参数是行为的类型, 第二个参数是给当前的行为绑定的方法, 第三个参数是控制在哪个阶段发生: true -> 在捕获阶段发生, false -> 在冒泡阶段发生。

    document.body.addEventListener('click', function (e) {
        console.log('body');
        console.log(e);;
    }, false);

    outer.addEventListener('click', function (e) {
        console.log('body');
        console.log(e);;
    }, true);

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

推荐阅读更多精彩内容

  • 事件:JavaScript 和 HTML的交互是通过事件实现的。 事件是某个行为或者触发,比如点击、鼠标移动: 当...
    左冬的博客阅读 3,668评论 0 4
  • 在javasript中delegate这个词经常出现,看字面的意思,代理、委托。 要搞懂事件代理,我们先来看看什么...
    YM雨蒙阅读 1,112评论 0 1
  • 引子:父div添加监听事件,子div设置监听事件,点击子元素,会出现什么结果 事件传播的三个过程,事件捕获阶段、处...
    胡思乱想的Alice阅读 892评论 0 1
  • 总结: 鼠标事件 1.click与dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r阅读 1,659评论 2 10
  • 01. 爱情就是“我是你的债主” “夜华,素素与你从此两不相欠”。 看到这句话,便知素素定是因为这爱情伤了人,所以...
    散文和诗阅读 685评论 6 3