- 浏览: 1325565 次
- 性别:
- 来自: 湖南澧縣
文章分类
最新评论
-
虾米小尹:
不行啊!2.2-0.25=1.9500000000000002 ...
JavaScript浮点数运算 —— 精度问题 -
heluping000000:
引用String a= "abc",首先在 ...
String,到底创建了多少个对象? -
mack:
谢谢分享matcher.appendReplacement(s ...
string.replaceAll()中的特殊字符($ \)与matcher.appendReplacement -
wzt3309:
完全理解,比网上其他资料都要详细
String,到底创建了多少个对象? -
u014771876:
Java中十六进制转换 Integer.toHexString()
事件
DOM同时支持两种事件模式:捕获型事件和冒泡型事件,但是,捕获型事件先发生。两种事件流会触及DOM中的所有对象,从document对象开始,也在document对象结束(大部分兼容标准的浏览会继续将事件捕获/冒泡延续至window对象),DOM中的元素都会连续收到两次事件,一次在捕获过程中,另一次在冒泡过程中。DOM事件模型最独特的性质是,文本节点也触发事件(在IE中不会)。点击文本节点事件流应该如下图:
传统事件处理函数有两种分配方式:在JavaScript中或者在HTML中。
在JavaScript中分配事件处理函数:
var oDiv = document.getElementById("div1"); oDiv.onclick = function () { alert("I was clicked"); };
注:在这个分配方法,事件处理函数名称必须小写,才能正确响应事件。
在HTML中分配事件处理函数:
<div onclick='alert("I was clicked")'> </div>
说明:用这种方法,事件处理函数的大小写可任意,所以onclick等同于onClick、OnClick或ONCLICK,但标准的事件处理函数应该全部用小写定义。
说明:传统分配方式有个缺陷就是只能分配一个处理函数。于是就出现了其它以下分配方式。
IE中特有的attachEvent()事件处理函数分配方式:
var fnClick1 = function () { alert("Clicked!"); }; var fnClick2 = function () { alert("Also clicked!"); }; var oDiv = document.getElementById("div"); oDiv.attachEvent("onclick", fnClick1);//绑定事件处理函数 oDiv.attachEvent("onclick", fnClick2); //do something ... oDiv.detachEvent("onclick", fnClick1);//解除事件处理函数 oDiv.detachEvent("onclick", fnClick2);
说明:事件处理函数总是按照添加它们的顺序进行调用。
DOM中的事件处理函数绑定
DOM中方法addEventListener()和removeEventListener()用来分配与移除事件处理函数。与IE不同,需三个参数:事件名、要分配的处理函数、处理函数是用于冒泡阶段还是捕获阶段,如果是捕获阶段,第三个参数为true。
var fnClick1 = function () { alert("Clicked!"); }; var oDiv = document.getElementById("div"); oDiv.addEventListener("onclick", fnClick1, false);//绑定事件处理函数 //do something ... oDiv.removeEventListener("onclick", fnClick1, false);//解除事件处理函数
说明:也可绑定多个函数,但要注意的是第三个参数删除时要与添加时一样才能真真删除掉函数,否则删除不掉,也不会报错。
传统方式oDiv.onclick = fnClick;与oDiv.addEventListener('onclick',fnClick1,false);等价。
事件对象的属性与方法
鼠标 / 键盘属性
属性 |
描述 |
IE |
F |
O |
W3C |
altKey |
返回当事件被触发时,"ALT" 是否被按下。 |
6 |
1 |
9 |
Yes |
button |
返回当事件被触发时,哪个鼠标按钮被点击。 |
6 |
1 |
9 |
Yes |
clientX |
鼠标指针相对于当前窗口的水平坐标。 |
6 |
1 |
9 |
Yes |
clientY |
鼠标指针相对于当前窗口的垂直坐标。 |
6 |
1 |
9 |
Yes |
ctrlKey |
返回当事件被触发时,"CTRL" 键是否被按下。 |
6 |
1 |
9 |
Yes |
metaKey |
返回当事件被触发时,"meta" 键是否被按下。 |
No |
1 |
9 |
Yes |
relatedTarget |
对于 mouseover 事件来说,该属性是鼠标指针移到目标节点上时所离开的那个节点。对于 mouseout 事件来说,该属性是离开目标时,鼠标指针进入的节点。 |
No |
1 |
9 |
Yes |
screenX |
事件发生时鼠标指针相对于屏幕的水平坐标。 |
6 |
1 |
9 |
Yes |
screenY |
鼠标指针相对于屏幕的垂直坐标。 |
6 |
1 |
9 |
Yes |
shiftKey |
返回当事件被触发时,"SHIFT" 键是否被按下。 |
6 |
1 |
9 |
Yes |
IE 属性
除了上面的鼠标/事件属性,IE 浏览器还支持下面的属性:
属性 |
描述 |
cancelBubble |
如果事件句柄想阻止事件传播到包容对象,必须把该属性设为 true。 |
fromElement |
对于 mouseover 和 mouseout 事件,fromElement 引用移出鼠标的元素。 |
keyCode |
对于 keypress 事件,该属性声明了被敲击的键生成的 Unicode 字符编码。对于 keydown 和 keyup 事件,它指定了被敲击的键的虚拟键盘代码。虚拟键盘码可能和使用的键盘的布局相关。 |
offsetX,offsetY |
发生事件的地点在事件源元素的坐标系统中的 x 坐标和 y 坐标。 |
returnValue |
如果设置了该属性,它的值比事件句柄的返回值优先级高。把这个属性设置为 fasle,可以取消发生事件的源元素的默认动作。 |
srcElement |
对于生成事件的 Window 对象、Document 对象或 Element 对象的引用。 |
toElement |
对于 mouseover 和 mouseout 事件,该属性引用移入鼠标的元素。 |
x,y |
事件发生的位置的 x 坐标和 y 坐标,它们相对于用CSS动态定位的最内层包容元素。 |
标准 Event 属性
下面列出了 2 级 DOM 事件标准定义的属性。
属性 |
描述 |
IE |
F |
O |
W3C |
bubbles |
如果事件是起泡类型,则返回 true,否则返回 fasle。 |
No |
1 |
9 |
Yes |
cancelable |
如果用 preventDefault() 方法可以取消与事件关联的默认动作,则为 true,否则为 fasle。 |
No |
1 |
9 |
Yes |
currentTarget |
返回其监听器触发事件的节点,即当前处理该事件的元素、文档或窗口。在捕获和起泡阶段,该属性是非常有用的,因为在这两个节点,它不同于 target 属性。 |
No |
1 |
9 |
Yes |
eventPhase |
回事件传播的当前阶段。它的值是1、2、3三个常量之一,它们分别表示捕获阶段、正常事件派发和起泡阶段。 |
|
|
|
Yes |
target |
返回事件的目标节点(触发该事件的节点),如生成事件的元素、文档或窗口。 |
No |
1 |
9 |
Yes |
timeStamp |
返回事件生成的日期和时间。 |
No |
1 |
9 |
Yes |
type |
返回发生的事件的类型,即当前 Event 对象表示的事件的名称。 它与注册的事件句柄同名,或者是事件句柄属性删除前缀 "on" 比如 "submit"、"load" 或 "click"。 |
6 |
1 |
9 |
Yes |
标准 Event 方法
下面列出了 2 级 DOM 事件标准定义的方法。IE 的事件模型不支持这些方法:
方法 |
描述 |
IE |
F |
O |
W3C |
initEvent() |
初始化新创建的 Event 对象的属性。 |
No |
1 |
9 |
Yes |
preventDefault() |
通知浏览器不要执行与事件关联的默认动作。 |
No |
1 |
9 |
Yes |
stopPropagation() |
终止事件在传播过程的捕获、目标处理或起泡阶段进一步传播。调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点。 |
No |
1 |
9 |
Yes |
发表评论
-
HTML、JS、JSON特殊字符
2010-12-13 23:47 25814JS到HTML特殊字符转换 这几天做项目,发现从服务器端以J ... -
HTML — HTTP URL 中的特殊字符
2009-10-31 18:16 32391. + URL中的+号表示空格 ... -
HTML — CSS选择器
2009-10-25 21:11 2121一个样式规则由两部分组成:选择器和样式声明。选择器表明要为哪一 ... -
部分解决JsUnit无法在firefox3、safari 测试的问题
2009-10-25 07:03 1406在上一篇中出现了一个问题,就是用 jsunit2.2alpha ... -
JsUnit——eclipse插件(四)
2009-10-25 06:59 2404这节我们来看看如何通过JsUnit插件来运行前几节所测试过的测 ... -
10、JavaScript跨浏览器需注意的问题——ajax基础笔记
2009-10-21 22:19 1323向表中追加行 创建表格行时,我们要把创建的 tr 追加到 t ... -
JsUnit详解——Web服务方式(三)
2009-10-21 00:21 2397上两节提到过以Web方式来运行JsUnit,不过不是很详细,这 ... -
JsUnit详解——《ajax基础》笔记(二)
2009-10-20 22:38 2488使用标准/定制查询串 如此说来,测试运行工具是很强大的,但是 ... -
JsUnit详解——《ajax基础》笔记(一)
2009-10-20 19:57 2539JsUnit与JUnit对比 JsUnit也有setUp() ... -
使用Firefox的Web开发插件
2009-10-18 17:53 1439Firefox的Web开发插件为Firefox浏览器增加了大量 ... -
9、访问WEB服务(REST)——ajax基础笔记
2009-10-18 17:24 3976最其名的WEB服务实现是S ... -
8、读取响应头部——ajax基础笔记
2009-10-18 17:20 6716你有时可能需要从服务器获取一些内容,例如,可能想“ping”一 ... -
7、使用JSON向服务器发送数据——ajax基础笔记
2009-10-18 17:20 5145看过前面的例子后(使用XML向服务器发送复杂的数据结构),你可 ... -
6、请求参数作为XML发送——ajax基础笔记
2009-10-18 17:20 1727如果只是使用一个包含 名/值 对的简单查询串,这可能不够健壮, ... -
4、将使用W3C DOM动态生成页面——ajax基础笔记
2009-10-18 17:19 1368使用W3C DOM动态生成页面 dynamicContent ... -
3、将响应解析为XML——ajax基础笔记
2009-10-18 17:18 1020将响应解析为XML parseXML.xml清单: < ... -
2、使用innerHTML属性创建动态内容——ajax基础笔记
2009-10-18 17:17 1873使用innerHTML属性创建动态内容 如果结合作用HTML ... -
1、使用XMLHttpRequest对象——ajax基础笔记
2009-10-18 17:17 1981XMLHttpRequest最早是在 IE5 中以active ... -
30、JavaScript代码优化
2009-10-16 21:25 1527JavaScript代码的速度被分成两部分:下载时间和执行速度 ... -
JavaScript代码优化(二)
2009-10-16 01:32 1160◆字符串的使用 在IE6和IE7中因字符串级联导致的主要问题 ...
相关推荐
接下来我们一起来看看实现这款jQuery带事件记录功能的日历插件的实现过程及源码,代码主要由HTML、CSS和jQuery组成。 HTML代码: üm Gün" data-title="WWDC 13 on San Francisco, LA"> ...
学习体验HTML5带给Web开发的便捷、快速和强大功能,是每一位Web设计和开发人员的当务之急。 本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,...
学习体验HTML5带给Web开发的便捷、快速和强大功能,是每一位Web设计和开发人员的当务之急。 本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,...
学习体验HTML5带给Web开发的便捷、快速和强大功能,是每一位Web设计和开发人员的当务之急。 本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,...
19.3 JavaScript事件 378 第20章 测试和调试网页 380 20.1 验证代码 380 20.2 测试页面 382 20.3 尝试一些调试技巧 385 20.4 检查常见错误:一般问题 386 20.5 检查常见错误:HTML 387 20.6 ...
第一部分 准备工作篇 第1章 准备工作 / 2 1.1 html5介绍 / 2 1.1.1 什么是html5 / 2 1.1.2 html5的新特性 / 2 1.2 canvas简介 / 5 1.2.1 canvas标签的历史 / 5 1.2.2 canvas的定义和用法 / 6 1.2.3 如何...
1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 替代内容 24 2.1.6 CSS和canvas 24 2.1.7 ...
1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 替代内容 24 2.1.6 CSS和canvas 24 2.1.7 ...
1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 替代内容 24 2.1.6 CSS和canvas 24 2.1.7 ...
1.4 编写第一个HTML文件 8 1.4.1 HTML文件的编写方法 8 1.4.2 手工编写页面 9 1.4.3 使用可视化软件制作页面 10 1.4.4 使用浏览器浏览HTML文件 14 1.4.5 使用HTML开发的明日图书网 14 1.5 小结 15 ...
学习体验HTML5带给Web开发的便捷、快速和强大功能,是每一位Web设计和开发人员的当务之急。 本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,...
1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 替代内容 24 2.1.6 CSS和canvas 24 2.1.7 ...
1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 替代内容 24 2.1.6 CSS和canvas 24 2.1.7 ...
一、概述 4 二、JQuery技术综述 5 2.1 JQuery基本语法 5 2.1.1 JQuery选择器 6 2.2 JQuery事件响应 8 2.2.1 常见的JQuery事件 9 2.2.2 淡入淡出效果 12 2.2.3 滑动效果 15 2.2.4 动画效果 18 2.2.5 终止动画 20 ...
一.html 1.html是超文本标记语言,通过浏览器响应标签来表现标签 2.html标签,标签由标签加属性组成,html有自己的标签树 <html> <head></head> <body></body> </html> 标签举例 标签,属性是它的“装备”,...
一、概述 4 二、JQuery技术综述 5 2.1 JQuery基本语法 5 2.1.1 JQuery选择器 6 2.2 JQuery事件响应 8 2.2.1 常见的JQuery事件 9 2.2.2 淡入淡出效果 12 2.2.3 滑动效果 15 2.2.4 动画效果 18 2.2.5 终止...
一、概述 4 二、JQuery技术综述 5 2.1 JQuery基本语法 5 2.1.1 JQuery选择器 6 2.2 JQuery事件响应 8 2.2.1 常见的JQuery事件 9 2.2.2 淡入淡出效果 12 2.2.3 滑动效果 15 2.2.4 动画效果 18 2.2.5 终止...