浅谈JavaScript的事件
更新时间:2015年02月27日 11:07:29 投稿:hebedich
事件是可以被 JavaScript 侦测到的行为。网页中的每个元素都可以产生某些可以触发 JavaScript 函数的事件。比方说,我们可以在用户点击某按钮时产生一个 onClick 事件来触发某个函数。事件在 HTML 页面中定义。
1、事件流
事件流描述的是从页面中接收事件的顺序。但是IE提出的是冒泡流,而Netscape Communicator提出的是捕获流。
JavaScript事件流
2、事件冒泡(event bubbling)
事件开始由最具体的元素(嵌套层次最深的那个节点)接收,然后逐级向上传播为较不为具体的节点(文档)。如下:
复制代码 代码如下:
<html>
<head>
<title>事件冒泡</title>
</head>
<body>
<div id="myDiv">点击我</div>
</body>
</html>
window.onload = function(){
var obj = document.getElementById("test");
obj.onclick = function(){
alert(this.tagName);
};
document.body.onclick = function(){
alert(this.tagName);
};
document.documentElement.onclick = function(){
alert(this.tagName);
};
document.onclick = function(){
alert("document");
};
window.onclick = function(){
alert("window");
}
};
事件传播顺序:div——>body——>html——>document
注意:
现代所有浏览器都支持冒泡事件,但实现还有一些差别。IE5.5及更早版本中的事件冒泡会直接从body跳到document(不执行html)。Firefox、Chrome和Safari则将事件一直冒泡到window对象。
3、停止事件冒泡和取消默认事件
a. 获取事件对象
复制代码 代码如下:
function getEvent(event) {
// window.event IE
// event 非IE
return event || window.event;
}
b 功能:停止事件冒泡
复制代码 代码如下:
function stopBubble(e) {
// 如果提供了事件对象,则这是一个非IE浏览器
if ( e && e.stopPropagation ) {
// 因此它支持W3C的stopPropagation()方法
e.stopPropagation();
} else {
// 否则,我们需要使用IE的方式来取消事件冒泡
window.event.cancelBubble = true;
}
}
c. 阻止浏览器的默认行为
复制代码 代码如下:
function stopDefault( e ) {
// 阻止默认浏览器动作(W3C)
if ( e && e.preventDefault ) {
e.preventDefault();
} else {
// IE中阻止函数器默认动作的方式
window.event.returnValue = false;
}
return false;
}
您可能感兴趣的文章:
- javascript 鼠标事件总结
- javascript 键盘事件总结 推荐
- JavaScript 模拟用户单击事件
- Javascript 模拟点击事件(点击链接与html点击) 兼容IE/Firefox
- javascript开发中使用onpropertychange,oninput事件解决onchange事件的不足
- JavaScript与Image加载事件(onload)、加载状态(complete)
- javascript 动态改变onclick事件触发函数代码
- JavaScript window.document的属性、方法和事件小结
- JavaScript获取onclick、onchange等事件值的代码
- IE8的JavaScript点击事件(onclick)不兼容的解决方法
- javascript移动设备Web开发中对touch事件的封装实例
- javascript监听鼠标滚轮事件浅析
- 21个JavaScript事件(Events)属性汇总
- javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
- 纯JavaScript实现获取onclick、onchange等事件的值
- JavaScript事件委托用法分析
- 浅谈javascript中this在事件中的应用
最新评论