事件

Doctype(文档类型)

浏览器会使用它来判断文档类型, 决定使用何种协议来解析,以及切换浏览器模式。

包含混杂模式和标准模式

  • 标准模式(standards mode):浏览器根据标准规约来渲染页面。
  • 混杂模式(quirks mode):浏览器采用更加宽松的、向后兼容的方式来渲染页面。默认模式

事件

事件流

  • 事件冒泡:事件开始由最具体的元素接收,然后逐级向上传播。支持性良好,兼容早期版本
  • 事件捕获:不太具体的节点更早接收事件,而最具体的节点最后接收事件。新版本浏览器支持,建议优先使用事件冒泡
  • 事件流:事件捕获阶段、目标阶段、冒泡阶段

事件处理程序

  • DOM0级:btn.onClick = fn
  • DOM2级:btn.addEventListener('click', fn, boolean), false表示冒泡阶段执行,true表示捕获阶段执行。btn.removeEventListener('click', fn, boolean), 移除事件处理, fn必须是同一个函数引用
  • IE事件处理:btn.attachEvent('onClick', fn), btn.dettachEvent('onClick', fn)

跨浏览器的事件处理

var EventUtil = {
   //添加事件监听
   addHandler: function(element, type, handler){
      if(element.addEventListener){
          element.addEventListener(type, fn, false)
      } else if (element.attachEvent){
         element.attachEvent("on" + type, handler)
      } else {
        element["on"+type] = handler
      }
   },
  // 移除事件监听
  removeHandler: function(element, type, handler){
     if(element.removeEventListener){
        element.removeEventListener(type, handler, false)
     } else if (element.detachEvent){
        element.detachEvent("on"+type, handler)
     } else {
        element["on"+type] = handler
     }
  },
  // 获取事件本身
  getEvent: function(event){
     return event || window.event
  },
  // 获取目标元素
  getTarget: function(event){
     return event.target || event.srcElement
  },
  // 阻止默认事件
 prevenDefault: function(event){
    if (event.preventDefault){
      event.preventDefault();
    } else {
      event.returnValue = false
    }
 },
// 阻止事件冒泡
stopPropagation: function(event){
   if(event.stopPropagation){
       event.stopPropagation();
   } else {
       event.cancelBubble = true;
   }
}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • JavaScript 程序采用了异步事件驱动编程模型。在这种程序设计风格下,当文档、浏览器、元素或与之相关的对象发...
    劼哥stone阅读 1,322评论 3 11
  • 声明:本文来源于http://www.webzsky.com/?p=731我只是在这里作为自己的学习笔记整理一下(...
    angryyan阅读 7,235评论 1 6
  • 什么是事件? JavaScript与HTML之间的交互是通过事件实现的。事件,就是文档或浏览器窗口中发生的一些特定...
    LeeoZz阅读 235评论 0 0
  • 事件流: 事件流:页面接收事件的顺序。 IE定义的:事件冒泡流(由最具体的元素依次传播到DOM树的最上层的Docu...
    xiaoguo16阅读 658评论 0 0
  • 一、问答 1. dom对象的innerText和innerHTML有什么区别? innerHTML: 也就是从对象...
    饥人谷_罗伟恩阅读 694评论 0 2

友情链接更多精彩内容