首先了解一下什么是事件?事件是web浏览器通知应用程序发生了什么事情。我们可以通过一些方式注册事件用来监听一些我们需要处理的事件。事件包含一下一些属性:
    事件类型:用来说明是什么类型事件的字符串
    事件处理程序:监听了某个事件想让他做的事情
    事件对象:特定的事件类型,有不同的属性
    事件传播:一般情况下是会经历捕获->目标对象->冒泡的过程,IE8之前的浏览器不支持事件捕获
 
    下面简单介绍一下事件有哪些类型,文档加载和准备就绪事件、鼠标事件、鼠标滚轮事件、拖放事件、键盘事件和文本输入事件。随着web平台的发展,事件集合越来越大,这些新的事件主要来自:html5规范和移动设备的触摸和手势事件。
 
    介绍了事件有哪些类型之后,接着我们聊聊注册事件处理程序。我们知道注册事件处理程序有两种基本方式:第一种出现在web初期,给事件目标对象或文档元素设置属性(0级事件模型);第二种方式是将事件处理程序传递给对象或者是元素(2级事件模型)。
 
    0级事件模型:

//直接写在属性里
<button id="btn" onclick="alert('click me')">clicke me</button>
//通过JS绑定到元素上
document.getElementById('btn').onclick = function() {
alert('click me');
}

  

2级事件模型
function clickHandler = function () {
alert('click me');
}
//非IE浏览器 /*
参数说明:第一个参数是事件类型,第二个参数是处理程序,第三个参数是是否在捕获阶段执行
阻止事件传播:Event.stopPropagation();
阻止默认事件:Event.preventDefault();
*/
document.getElementById('btn').addEventListener('click', clickHandler, false ); //注册
document.getElementById('btn').removeEventListener('click', clickHandler, false ); //清除 //IE浏览器
/*
参数说明:第一个参数是事件类型,第二个参数是处理程序;由于IE不支持捕获,所以没有第三个参数
阻止事件传播:window.event.cancleBuble();
阻止默认事件:window.event.returnValue = false;
*/
document.getElementById('btn').attachEvent('onclick', clickHandler); //注册
document.getElementById('btn').detachEvent('onclick', clickHandler); //解除
    注:
    1.虽然所有的事件都受事件传播的捕获阶段的支配但并非所有事件都冒泡;一般来说原始输入事件冒泡,高级语义事件不冒泡(blur、focus)
    2.addEventListener注册的事件是由顺序的,attachEvent无顺序
 
    利用event.target和冒泡可以实现事件代理。

javascript的事件处理的更多相关文章

  1. 20个优秀的 JavaScript 键盘事件处理库

    键盘事件是 Web 开发中最常用的事件之一,通过对键盘事件的捕获和处理可以提高网站的易用性和交互体验.下面,我们向大家介绍收集的20款优秀的 JavaScript 键盘事件处理库,帮助开发人员轻松处理 ...

  2. 20个优秀的JavaScript 键盘事件处理库

    键盘事件是 Web 开发中最常用的事件之一,通过对键盘事件的捕获和处理可以提高网站的易用性和交互体验.下面,我们向大家介绍收集的20款优秀的 JavaScript 键盘事件处理库,帮助开发人员轻松处理 ...

  3. JavaScript之事件处理详解

    一.事件传播机制 客户端JavaScript程序(就是浏览器啦)采用了异步事件驱动编程模型.当文档.浏览器.元素或与之相关的对象发生某些有趣的事情时,Web浏览器就会产生事件(event).如果Jav ...

  4. javascript IE事件处理及跨浏览器事件处理程序

    一.javascript事件处理中 addEventListener/removeEventListener 用于绑定事件和解除事件,但大多用于chrome/火狐/IE9这些比较高级的浏览器中,IE8 ...

  5. JavaScript中事件处理

    先看看下面一道题目,请评价以下代码并给出改进意见: if (window.addEventListener) {//标准浏览器 var addListener = function(el, type, ...

  6. 二、JavaScript语言--事件处理--DOM事件探秘--下拉菜单

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 二、JavaScript语言--事件处理--DOM事件探秘

    第一章 事件流 事件:是文档或浏览器窗口中发生的.特定的交互瞬间.JavaScript和HTML之间的交互都是通过事件来实现的. 事件流:描述的是从页面中接受事件的顺序 IE:事件冒泡流 Netsca ...

  8. 关于JavaScript的事件处理一些知识

    <JS事件处理> Event对象详细信息:http://www.w3school.com.cn/jsref/dom_obj_event.asp JS原生支持3中绑定事件方式: 1.以标签属 ...

  9. javascript之事件处理

    一般事件 onclick                       鼠标点击时触发此事件 ondblclick                  鼠标双击时触发此事件 onmousedown    ...

  10. 编写可维护的JavaScript之事件处理

    规则1:隔离应用逻辑 这会让你的代码容易调试 规则2:不要分发事件对象 event对象包含了太多信息 // a good example var handlePopup = { // 事件句柄,处理所 ...

随机推荐

  1. 使用layer显示弹出框笔记

    $.layer({     area : ['200px','auto'], //控制层宽高.当设置为auto时,意味着采用自适应, 当然,对于宽度,并不推荐这样做.例如:area : ['310px ...

  2. 用于防SQL注入的几个函数

    不要相信用户的在登陆中输入的内容,需要对用户的输入进行处理 SQL注入: ' or 1=1 # 防止SQL注入的几个函数: addslashes($string):用反斜线引用字符串中的特殊字符' & ...

  3. css中的7中属性选择器

    在CSS的选择符中有七个属性选择符.它们分别是: 1.E[att] 选择具有att属性的E元素. 2.E[att="val"] 选择具有att属性且属性值等于val的E元素. 3. ...

  4. Win32/MFC的基本概念

    一.MFC的基本概念 单文档.多文档和对话框框架的区别 MFC中的类继承图的基本框架 CView类与CDocument的关系 Onpaint()和Ondraw()的关系 hdc-cdc区别联系 RUN ...

  5. Django之上传文件

    使用Form表单上传文件 upload.html <!DOCTYPE html> <html lang="en"> <head> <met ...

  6. (转)iOS7界面设计规范(6) - UI基础 - 模态情境

    继续规范.现在听着Clapton的Wonderful Tonight,想想看,整个高二暑假都在为这首歌着迷,经常夜里一边做英语暑期作业一边循环这首歌,心里特别静的赶脚.13年过去了,再听起来,就像隔着 ...

  7. Laravel-路由-控制器

    (慕课网_轻松学会Laravel-基础篇_天秤vs永恒老师) 一.基础路由 二.多请求路由 三.参数路由 四.路由别名 生成url可以使用别名 五.路由群组 六.路由输出视图 七.控制器参数绑定

  8. 实战ffs函数

    这个函数是返回整形的最低位1的位置 自己写是这个样子的: /* Find the first bit set in I. */ int lx_ffs(int i) { int index = 0, r ...

  9. js点击打开弹窗

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  10. (转)sql中 in 、not in 、exists、not exists 用法和差别

    exists (sql 返回结果集为真)  not exists (sql 不返回结果集为真)  如下:  表A  ID NAME  1    A1  2    A2  3  A3 表B  ID AI ...