登录  /  注册
首页 > web前端 > js教程 > 正文

事件模型的详解

php中世界最好的语言
发布: 2018-03-19 14:38:45
原创
1756人浏览过

这次给大家带来事件模型的详解,使用事件的详解的注意事项有哪些,下面就是实战案例,一起来看一下。

IE事件模型(没有捕获)(

  1. attachEvent(event, function)
    detachEvent(event, function)
    第一个参数为on+'event';

  2. 目标对象event.srcElement;

  3. this会指向window;

  4. event.cancelBubble = true   // 停止冒泡
    event.returnValue = false    //  阻止默认事件

标准DOM事件模型(捕获、目标、冒泡)(>ie8)

  1. addEventListener(event, function, useCapture)
    removeEventListener(event, function, useCapture)
    useCapture为true,在捕获阶段执行,从外到里触发;
    useCapture为false,在冒泡阶段执行(默认),从里到外触发;

  2. event.target和event.currentTarget
    target在事件流的目标阶段(指向触发事件监听的对象);
    currentTarget在事件流的捕获,目标及冒泡阶段(指向添加事件监听的对象);
    只有当事件流处在目标阶段的时候,两个的指向才是一样的;
    而当处于捕获和冒泡阶段的时候,target指向被单击的对象而currentTarget指向当前事件活动的对象(一般为父级)。

  3. this指向事件监听对象;

  4. event.stopPropagation()  //  停止冒泡
    event.preventDefault()    //   阻止默认事件

  5. event.stopImmediatePropagation(),阻止剩余的事件处理函数执行并且防止事件冒泡到DOM树上,这个方法不接受任何参数;

自定义事件

var event = new Event('自定义事件');// Listen for the event.elem.addEventListener('自定义事件', function (e) { ... }, false);// Dispatch the event.elem.dispatchEvent(event);
CustomEvent 接口可以为 event 对象添加更多的数据;detail属性可用于传递自定义数据:var event = new CustomEvent('自定义事件', { 'detail': elem.dataset.time });
下面的代码允许你在事件监听器中访问更多的数据:function eventHandler(e) {
  log('The time is: ' + e.detail);
}
登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

event loop如何使用

JavaSript事件冒泡和事件捕获如何实现 

以上就是事件模型的详解的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号