- 浏览: 1344557 次
- 性别:
- 来自: 湖南澧縣
-
文章分类
最新评论
-
虾米小尹:
不行啊!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 25914JS到HTML特殊字符转换 这几天做项目,发现从服务器端以J ... -
HTML — HTTP URL 中的特殊字符
2009-10-31 18:16 33501. + URL中的+号表示空格 ... -
HTML — CSS选择器
2009-10-25 21:11 2219一个样式规则由两部分组成:选择器和样式声明。选择器表明要为哪一 ... -
部分解决JsUnit无法在firefox3、safari 测试的问题
2009-10-25 07:03 1465在上一篇中出现了一个问题,就是用 jsunit2.2alpha ... -
JsUnit——eclipse插件(四)
2009-10-25 06:59 2478这节我们来看看如何通过JsUnit插件来运行前几节所测试过的测 ... -
10、JavaScript跨浏览器需注意的问题——ajax基础笔记
2009-10-21 22:19 1402向表中追加行 创建表格行时,我们要把创建的 tr 追加到 t ... -
JsUnit详解——Web服务方式(三)
2009-10-21 00:21 2486上两节提到过以Web方式来运行JsUnit,不过不是很详细,这 ... -
JsUnit详解——《ajax基础》笔记(二)
2009-10-20 22:38 2581使用标准/定制查询串 如此说来,测试运行工具是很强大的,但是 ... -
JsUnit详解——《ajax基础》笔记(一)
2009-10-20 19:57 2658JsUnit与JUnit对比 JsUnit也有setUp() ... -
使用Firefox的Web开发插件
2009-10-18 17:53 1492Firefox的Web开发插件为Firefox浏览器增加了大量 ... -
9、访问WEB服务(REST)——ajax基础笔记
2009-10-18 17:24 4080最其名的WEB服务实现是S ... -
8、读取响应头部——ajax基础笔记
2009-10-18 17:20 6784你有时可能需要从服务器获取一些内容,例如,可能想“ping”一 ... -
7、使用JSON向服务器发送数据——ajax基础笔记
2009-10-18 17:20 5262看过前面的例子后(使用XML向服务器发送复杂的数据结构),你可 ... -
6、请求参数作为XML发送——ajax基础笔记
2009-10-18 17:20 1828如果只是使用一个包含 名/值 对的简单查询串,这可能不够健壮, ... -
4、将使用W3C DOM动态生成页面——ajax基础笔记
2009-10-18 17:19 1488使用W3C DOM动态生成页面 dynamicContent ... -
3、将响应解析为XML——ajax基础笔记
2009-10-18 17:18 1089将响应解析为XML parseXML.xml清单: < ... -
2、使用innerHTML属性创建动态内容——ajax基础笔记
2009-10-18 17:17 1983使用innerHTML属性创建动态内容 如果结合作用HTML ... -
1、使用XMLHttpRequest对象——ajax基础笔记
2009-10-18 17:17 2046XMLHttpRequest最早是在 IE5 中以active ... -
30、JavaScript代码优化
2009-10-16 21:25 1633JavaScript代码的速度被分成两部分:下载时间和执行速度 ... -
JavaScript代码优化(二)
2009-10-16 01:32 1221◆字符串的使用 在IE6和IE7中因字符串级联导致的主要问题 ...
相关推荐
HTML表格是一种常用的数据展示方式,但在网页中,随着数据量的增加,滚动条的出现可能会导致用户失去对表头和列标识的视线。为了解决这个问题,我们可以实现一个类似于Excel的功能,即在滚动时固定表格的第一行和第...
以下是对标题和描述中涉及的一些主要HTML鼠标事件的详细说明: 1. onClick:这是最常见的事件,当用户单击鼠标左键时触发。常用于链接、按钮等元素,执行特定的操作或跳转。 2. onDblClick:当用户快速连续两次...
在这个名为“html制作的备忘录”的项目中,我们可以推测这是一个用HTML构建的简单备忘录应用,可能用于个人或团队记录待办事项。 在HTML备忘录的创建过程中,主要涉及以下几个关键知识点: 1. **HTML基础结构**:...
"HTML5重力感应游戏 甩甩领导的头像"利用HTML5的DeviceOrientation事件,获取设备的倾斜角度,将这一物理运动转化为游戏内的操作,增加了游戏的趣味性和互动性。 "HTML5超级玛丽游戏重体验 HTML5游戏经典"证明了...
在没有具体内容和上下文的情况下,我们可以假设这是一份HTML格式的文件,并且包含了一些与数字“20”相关的信息或主题。以下是对可能的HTML文件内容的知识点概括,以及对其内容的一种推测性的描述。 首先,我们可以...
接下来我们一起来看看实现这款jQuery带事件记录功能的日历插件的实现过程及源码,代码主要由HTML、CSS和jQuery组成。 HTML代码: üm Gün" data-title="WWDC 13 on San Francisco, LA"> ...
5. 组合使用HTML、CSS和JavaScript:可能涉及到交互元素,如按钮点击事件、表单验证等,这需要JavaScript来实现动态效果。 6. 网页优化:包括减少HTTP请求、压缩资源、使用CDN、优化图片大小等,提高网页加载速度和...
HTML实现照片墙是一种常见的网页设计技术,用于展示一系列图片,形成美观且互动性强的视觉效果。在本项目中,我们将探讨如何使用HTML、CSS以及可能的JavaScript来创建一个功能完备的照片墙。 首先,HTML(HyperText...
在这个项目中,“HTML制作许愿墙-拖动东西放到许愿墙上”,我们主要关注的是如何利用HTML5的拖放API(Drag and Drop API)以及可能配合的jQuery插件来实现用户可以将元素拖放到一个许愿墙上的功能。 首先,让我们...
<li><span class="timestamp">2022</span> 事件一 <li><span class="timestamp">2021</span> 事件二 ... ``` 2. CSS样式:定义时间轴的外观,如线条、时间点样式、事件内容的布局等。 ```css #timeline ul {...
以下将详细讲解如何使用HTML和CSS创建一个侧边抽屉式导航栏。 首先,我们需要构建HTML结构。一个简单的侧边抽屉导航栏可能包括一个包含导航链接的`<nav>`元素,以及一个触发导航栏显示/隐藏的按钮。示例如下: ```...
在这个“是男人就撑过20秒”躲避游戏中,HTML5 Canvas被用来创建一个动态的游戏环境,玩家需要操控角色避开不断出现的障碍物,目标是在20秒内尽可能生存。 首先,Canvas API提供了基本的绘图方法,如`fillRect()`...
而 jQuery 是一个流行的 JavaScript 库,简化了 JavaScript 的使用,提供了丰富的 DOM 操作、事件处理和动画效果。 在构建树状图的过程中,HTML 用于创建基本的结构,每个节点可以是一个 `<ul>`(无序列表)或 `...
在本主题中,“20表白html源代码”指的是利用HTML编写的20种不同的浪漫表白页面的源代码。这些源代码通常包含创意的布局、动画效果以及个性化的情感表达,旨在通过网页向心仪的人传递爱意。 HTML源代码由一系列的...
20. `loadstart`:浏览器开始查找媒体数据,这个事件在播放前会先触发。 21. `stalled`:媒体数据加载受阻,但稍后可能会恢复。 22. `play`:当执行`play`方法或设置`autoplay`属性后触发。 下面是一个简单的示例,...
在这个项目“HTML分析器——htmlparser1-4_20”中,我们可能涉及到了一系列的HTML解析技术与实践。 首先,HTML解析器的核心功能是对HTML标记语言进行解析,识别出标签、属性、文本等内容。这通常包括词法分析(将...
HTML5移动端模板是一系列预先设计和编码的网页结构,它们为开发者和设计师提供了一个快速构建移动网站或应用的基础。这些模板通常包含响应式布局,能够适应不同尺寸的屏幕,从智能手机到平板电脑都能良好显示。在"60...
HTML5环形进度条插件是网页开发中用于展示任务进度、数据加载或者任何需要进度指示情况的一种交互元素。在现代网页设计中,这类插件不仅提供了基本信息展示功能,还能通过丰富的样式提升用户体验,使界面更具吸引力...
在本主题中,我们将深入探讨如何使用HTML和CSS创建一个轮滑式卡片(Carousel)效果,这是一种常见于网站中展示图片或内容的交互式组件。 首先,HTML是HyperText Markup Language的缩写,它是用来构建网页内容的语言...
HTML5过山车游戏源码是一个基于HTML5技术开发的游戏项目,主要利用了HTML5的Canvas元素、JavaScript以及可能的一些CSS3特性来实现。在这个游戏中,玩家可以通过键盘或触摸屏控制过山车在虚拟的轨道上运行,体验刺激...