dom01
事件冒泡:即事件最开始由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播至最不具体的那个节点(文档)。
事件捕获:即不太具体的节点应该更早接收到事件,而最具体的节点最后接收到事件。
事件处理程序:1.HTML处理程序
<body>
<div id="box">
<input type="button" value="按钮" id="btn" onclick="alert(123)"/>
</div>
</body>
javascript和html耦合在一起,改起来比较麻烦,不建议使用的:
function showMessage(){
    alert("hello word")
}
</script>
</head>
<body>
<div id="box">
    <input type="button"  value="按钮" id="btn" onclick="showMessage()"/>
</div>
2.dom0级事件处理程序
较传统的方式:把一个函数赋值给一个事件爱你的处理程序属性用的比较多的方法 简单 夸浏览器的优势
window.onload=function(){
    var btn2=document.getElementById('btn2');
    btn2.onclick=function(){
        alert('这个是dom0级添加的事件')
    }
// btn2.onclick=null;
}
<input type="button" value="按钮3" id="btn3"/>
3.dom2级事件处理程序
dom2级事件定义了两种方法:
用于处理指定和删除事件处理程序的操作
addEventListener()和removeEventListner()
接收三个参数:要处理的事件名,作为事件处理程序的函数和布尔值(false事件冒泡,true事件捕获)
window.onload=function(){
    var btn3=document.getElementById('btn3');
    btn3.addEventListener('click',showMessage,false);
  btn3.addEventListener('click',function(){
        alert(this.value)
    },false);
  btn3.removeEventListener('click',showMessage,false);
}
<input type="button" value="按钮3" id="btn3"/>
4.IE事件处理程序
attachEvent()添加事件
detachEvent()删除事件
接收相同的两个参数:事件处理程序的名称和事件处理程序的函数
不使用第三个参数的原因:IE8以及更早的浏览器版本只支持事件冒泡
window.onload=function(){
    var btn3=document.getElementById('btn3');
   btn3.attachEvent('onclick',showMessage)
}
<input type="button" value="按钮3" id="btn3"/>
5.跨浏览器的事件处理程序
function showMessage(e){
      alert(e.type);
  }
  var eventUtil={
          //添加句柄
          addHandler:function(element,type,handler){
              if(element.addEventListener){//dom二级
                  element.addEventListener(type,handler,false);
              }else if(element.attachEvent){//IE
                  element.attachEvent('on'+type,handler);
              }else{//dom0级
                  element['on'+type]=handler;//element.onclick===element['onclick'];
              }
          },
      //删除句柄
          removeHandler:function(element,type,handler){
              if(element.removeEventListener){//dom二级
                  element.removeEventListener(type,handler,false)
              }else if(element.detachEvent){//IE
                  element.detachEvent('on'+type,handler);
              }else{//dom0级
                  element['on'+type]=null;//element.onclick===element['onclick']
              }
          }
      }
<input type="button" value="按钮3" id="btn3"/>
<script>
  var btn3=document.getElementById('btn3');
  eventUtil.addHandler(btn3,'click',showMessage);
  //eventUtil.removeHandler(btn3,'click',showMessage);
</script>
dom01的更多相关文章
- 004 DOM01
		一:说明 1.Js的三个部分 ECMAScripts标准:JS的基本语法 DOM:文档对象模型,操作页面的元素的 BOM:浏览器对象模型,操作浏览器 2.术语 文档:一个页面就是一个文档 元素:页面中 ... 
- JS基础语法之DOM01(找标签、改属性样式)
		DOM:暂时可以理解为找标签.改样式 1.BOM: 记住location这个就可以: location.href 获得当前页面的URL location.href = "URL" ... 
- eCharts_基于eCharts开发的一个多图表页面
		<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ... 
- eCharts_数据过多底部滚动条实现数据展示
		效果图: 实现原理: 1.添加dataZoom属性 效果实现代码: <!DOCTYPE html> <html> <head> <meta charset=& ... 
- 基于three.js实现特定Div容器的粒子特效封装
		本文基于three.js实现特定容器的粒子特效效果,支持用户传入特定的dom对象以及粒子颜色. 效果图 移入库 <script src="jquery-1.11.3.min.js&qu ... 
- DOM解析xml学习笔记
		一.dom解析xml的优缺点 由于DOM的解析方式是将整个xml文件加载到内存中,转化为DOM树,因此程序可以访问DOM树的任何数据. 优点:灵活性强,速度快. 缺点:如果xml文件比较大比较复杂会占 ... 
随机推荐
- 我的第一次windows规划
			#include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; //WinMain功能被分配一 ... 
- sqlserver不能直接create table as select
			sqlserver不能直接create table as select 在sqlserver 下想复制一张表的,想到oracle下直接create table xxx as select * from ... 
- 大虾翻译(一):jQuery.extend()
			本文是在JavaScript之三里面链接内容的中文翻译.我会尽可能做到信达雅且保持作者原意不变,OK,let's Go! jQuery.extend(target,[object1],[objectN ... 
- oracle 10g操作和维护手册
			1. 检查数据库基本状况... 1.1. 检查Oracle实例状态... 1.2. 检查Oracle服务进程... 1.3. 检查Oracle监听状态... 2. ... 
- requirejs实现模块化
			使用requirejs实现模块化编程 > 序言 - -# 公司大了,业务多了,前端代码量也逐渐增大,我们渐渐的依赖js实现的交互越来越多,长期以来会导致我们的代码维护越来越困难,所以依赖的插件也 ... 
- java RC4加密和解码
			package com.*; public class RC4 { public static String decry_RC4(byte[] data, String key) { if (data ... 
- 【电视桌面CSWUI】电视桌面(launcher)截图欣赏
			网络播放器是最重要的电视桌面.cswui,我们公司做了一个非常大的人力,物力搞一个电视柜.后来一一介绍,简言之发送屏幕截图.给大家看. watermark/2/text/aHR0cDovL2Jsb2c ... 
- DevExpress XtraReports 入门三 创建 Master-Detail(主/从) 报表
			原文:DevExpress XtraReports 入门三 创建 Master-Detail(主/从) 报表 本文只是为了帮助初次接触或是需要DevExpress XtraReports报表的人群使用 ... 
- from声明
			在整个应用程序,只有三行声明.这是最短单WIN32应用,但它的功能是非常有限,简单地显示一个消息框,示出来,其他什么事情也没有做.以下就来分析这三行语句了.别小看这三行语句.其实是隐藏着非常多知识点在 ... 
- Codeforces 135A-Replacement(思维)
			A. Replacement time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ... 
