手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >浅谈JavaScript的事件
浅谈JavaScript的事件
摘要:1、事件流事件流描述的是从页面中接收事件的顺序。但是IE提出的是冒泡流,而NetscapeCommunicator提出的是捕获流。JavaS...

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实现对话框的教程

JavaScript函数使用的基本教程

JavaScript中的pow()方法使用

javascript相关事件的几个概念

JavaScript静态的动态

JavaScript中strike()方法的使用介绍

JavaScript中Math.SQRT2属性的使用详解

浅谈JavaScript事件的属性列表

精品推荐
分类导航