由于老外的叙事实在罗嗦,因此我以后仅仅翻译重点的东西,或者自己进行整理总结,如有错误之处,还请看官指正。
W3C标准和IE的差异
W3C标准绑定事件的方法
element.addEventListener('click', function() { }, false);
IE绑定事件的方法
var handler = function() { };
element.attachEvent('onclick', handler);
element.detachEvent('onclick', handler);
使用能力探测来适配两者之间的不同:
if (element.addEventListener) {
element.addEventListener(type, responder, false);
} else if (element.attachEvent) {
element.attachEvent('on' + type, responder);
}
IE事件绑定中存在的两个问题:
1.内存泄露
大部分框架使用缓存记录事件的绑定,并在onunload事件中对绑定的事件进行清理。
2.event和target
event可以通过window.event获取,target可以通过event.srcElement代替。
验证元素
对于传进来的元素,我们首先要确定它是否可以添加事件。根据元素的nodeType属性可以确定节点的类型:
- 元素 element 1
- 属性 attr 2
- 文本 text 3
- 注释 comments 8
- 文档 document 9
我们要在元素中过滤掉文本节点和注释节点:
function isValidElement(element) {
return element.nodeType !== 3 && element.nodeType !== 8;
}
接口设计
接口设计参考W3C标准:
- 添加事件:turing.events.add(element, type, callback)
- 删除事件:turing.events.remove(element, type, callback)
- 触发事件:turing.events.fire(element, type)
- 使用event获取事件对象,提供target属性获取目标元素
参考阅读
分享到:
相关推荐
Vue.js:一个渐进式JavaScript框架,用于构建交互式界面。 Sass 和 Less:CSS预处理器,用于简化和加强CSS的功能。 Bootstrap:一个用于快速开发响应式网站的前端框架。 jQuery:一个流行的JavaScript库,简化了处理...
约定大于配置,基本无需配置,即可开始开发之旅。 约定大于配置,团队合作写出来的应用代码基本一致,方便统一代码风格。 应用的restful的route完全根据目录结构自动生成,无需自己声明和指定。 controller和...
ucf-web 一个专注于性能与效率的前端微应用开发框架ucf-web 是整个框架的代号,相关资源都在本仓库内维护,形成统一框架体系。关键特性中台前端技术收敛化、标准化三种微应用开发模式,打破铁桶一块的巨石应用UI ...
3开始vue.js之旅 12 3.1概述 13 3.2原理 14 3.3开发环境-》生产环境 14 3.4实现原理 15 3.5 如何引用 15 3.6 快速构建 15 3.7 结构介绍 16 3.8 语法介绍 17 (一)单向绑定 17 (二)双向绑定 17 (三)函数返回值 ...
Vue VR Panolens的包装,用于基于threejs演示使用Vue构建VR应用程序图像Pano Cube Pano视频Pano VR之旅Vue VR入门,用于Vue的Panolens的包装,基于Threejs演示与Vue构建VR应用程序,演示Pano Cube Pano视频Pano VR导...
一个很好的应用程序,可以启动使用带有node.js的无服务器框架的旅程。先决条件开发的先决条件包括: Node.js 12.x 纱线或npm无服务器安装npm install -g无服务器初始配置使用ssh或https下载存储库。 跑步 yarn ...
我们提供了详细的教程和技术支持,助您轻松完成个性化的网站开发。 总之,这份响应式HTML网页模板源码是您进行毕设、课设或大作业的理想选择。它不仅节省了开发时间,降低了学习成本,还能帮助您提升作品的专业品质...
前端学习之旅 我学习前端Web开发的卑鄙方式,可以自由添加任何有用的资源! 概要 什么是前端 该存储库包含什么 如何运行项目 资源和教程 CSS框架 学分 什么是前端(通过Wikipedia) 前端Web开发是一种将数据转换为...
Vue.js:一个渐进式JavaScript框架,用于构建交互式界面。 Sass 和 Less:CSS预处理器,用于简化和加强CSS的功能。 Bootstrap:一个用于快速开发响应式网站的前端框架。 jQuery:一个流行的JavaScript库,简化了处理...
这份专业的JavaScript动态响应式网页模板正是您的需求所在。...它不仅优化了用户交互体验,还确保了跨设备的兼容性,无论在桌面、平板还是智能手机上均能完美展现...立即获取这份资源,开启您度假酒店数字化之旅的新篇章!
服务器自定义开发二之客户端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的MasterPage技术) Tool Tip 示例(FILTER版) Tool Tip示例 (htc版) 一个.net发送HTTP数据实体的类 ...
有许多已知且高度适应的解决方案,例如 Sensca,但是当我开始我的微服务之旅时,我想开发自己的框架,以便更深入地了解微服务的机制。 这个项目是为了自学经验,但是完成后,我会在一个生产项目上试运行它。 当然...
此旅游管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。旅游管理系统有管理员,用户两个角色。管理员功能有...
细品这杯香浓的咖啡——阿里中间件高级专家沈询的Java之旅.docx 给你一次机会面试架构师 你会问什么问题?.docx 超全面:程序员跳槽神级攻略.docx 跳还是不跳,是一个问题——跳槽时该如何权衡?.docx 进入IT企业...
项目概述:本项目是一款基于Django框架与协同过滤算法的电影推荐系统。该系统采用JavaScript、Python、HTML和CSS等多种...本项目旨在为电影爱好者提供一个智能、便捷的电影推荐平台,助力用户在电影世界的探索之旅。
在这样的环境中,开发组件或框架成为一项具有挑战的工作。这次,我们将以一个简易的 JavaScript 组件开发为契机,逐步展开组件的分析、设计、实现、构建和测试等任务,探讨组件开发过程涉及的方方面面。这些探讨将分...
哈巴巴克Hababak是最大的移动应用程序之一,完全使用#androidstudio,#laravel后端和仪表板使用#vuejs进行了全面开发,而vuejs是最好JavaScript框架之一。 Hababak是一种提供服务的应用程序,可简化苏丹在这里的...
欢迎您开始@medux之旅,建议您依次阅读以下4篇文章,这将耗费您大约30分钟。为什么你需要medux:||medux基础概念速览:||medux路由篇:||medux数据流:||@medux包含以下开发包: :基础包 :抽象web风格的,转换能...
3D LOWE VT(3D罗W-成本我们B-基于System V irtual牛逼我们)可以Swift,发展虚拟之旅(VT)的经验可以在功能与更复杂的VT而竞争的软件框架。 具有最少编码经验的用户能够使用 360 度全景相机、开源工具和以及此 ...
初学者系列-JavaScript简介(Node.js) 概述 我们创建了一个视频系列,以帮助开发人员对为编写感到好奇。...您还可以通过以下有关Node.js的视频系列继续学习之旅:从 贡献 该项目欢迎您的贡献和建议。 大多