- 事件对象:
事件对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。 - 事件对象的属性:
x x坐标 距左边界的距离 IE中距父级容器左边界的距离
y y坐标 距上边界的距离 IE中距父级容器上边界的距离
clientX 距左边界的距离
clientY 距上边界的距离
screenX 距屏幕左边界的距离
screenY 距屏幕上边界的距离
pageX 距左边界的距离 IE8不支持
pageY 距上边界的距离 IE8不支持 - 事件流:
DOM事件流分为三个阶段:
1) 事件捕获
2) 目标阶段
3) 事件冒泡
事件流的写法:
1) W3c:
element.addEventListener(eventType, fn, false)
dom对象.addEventListener(事件类型, 回调函数, 事件机制)
2) IE:
element.attachEvent(eventType,fn,false);
dom对象.attachEvent(事件类型,回调函数,事件机制)
// 注册事件
if(dom.addEventListener) {
dom.addEventListener(eventType, fn);
} else {
if(dom.attachEvent) {
dom.attachEvent(‘on’ + eventType, fn);
}
}
// 删除事件
if(dom.removeEventListener) {
dom.removeEventListener(eventType, fn, false);
} else {
if(dom.detachEvent) {
dom.detachEvent(“on” + eventType, fn)
}
} - 事件捕获和事件冒泡:
事件捕获:从上向下触发事件,先父级元素触发事件,再子级元素触发事件;
事件冒泡:从下向上触发事件,先子级元素触发事件,再父级元素触发事件。 - 阻止事件冒泡和取消浏览器默认行为:
- 阻止事件冒泡:
w3c:
event.stopPropagation;
IE:
event.cancelBubble = true; - 取消浏览器默认行为:
W3c:
event.preventDefault
IE:
event.returnValue = false;
阻止事件冒泡
function stopBubble(e) {
//如果提供了事件对象,则这是一个非IE浏览器
if ( e && e.stopPropagation )
//因此它支持W3C的stopPropagation()方法
e.stopPropagation();
else
//否则,我们需要使用IE的方式来取消事件冒泡
window.event.cancelBubble = true;
}
阻止浏览器的默认行为
function stopDefault( e ) {
//阻止默认浏览器动作(W3C)
if ( e && e.preventDefault )
e.preventDefault();
//IE中阻止函数器默认动作的方式
else
window.event.returnValue = false;
return false;
}
- 阻止事件冒泡:
- 事件委托(事件代理):
利用事件冒泡的原理,让自己触发的事件,交给父元素代替执行 - jquery中的四种事件绑定(事件监听)方式:
- bind
- live
- delegate
- on
区别:
bind 函数只能针对已经存在的元素进行事件的设置;但是live(),on(),delegate()均支持未来新添加元素的事件设置
live()函数和delegate()函数两者类似,但是live()函数在执行速度,灵活性和CSS选择器支持方面较delegate()差些
继续阅读与本文标签相同的文章
上一篇 :
动画
下一篇 :
简单的 canvas 翻角效果
-
汇编(四)字的存储、DS和[address]、字的传送、mov、add、sub指令、数据段
2026-05-19栏目: 教程
-
elasticsearch之索引管理API(Index management)
2026-05-19栏目: 教程
-
简单介绍几种Java后台开发常用框架组合
2026-05-19栏目: 教程
-
<丰田发布了LQ EV概念车>。丰田全新的概念车配备了AI代理和自动驾驶功能,这是丰田美国公司研究员开发的,首次的公开亮相将在本月23日。在2017年CES消费车展上丰田曾展示了 Concept-Ai i概念车
2026-05-19栏目: 教程
-
Sysweld笔记:利用稳态算法加速算法模拟焊接过程的残余应力
2026-05-19栏目: 教程
