╋艺 镇╋╋网站网络|程序语言|Flash╋┣◇网站建设&Web语言 → JS冒泡事件解决方案


  共有20526人关注过本帖树形打印复制链接

主题:JS冒泡事件解决方案

美女呀,离线,留言给我吧!
admin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 司令 亲民勋章
等级:管理员 帖子:3027 积分:27521 威望:0 精华:7 注册:2003/12/30 16:34:32
JS冒泡事件解决方案  发帖心情 Post By:2011/1/7 17:12:25 [只看该作者]

何为冒泡事件。

就是当设定了多个div的嵌套时;即建立了父子关系,当父div与子div共同加入了onclick事件时,当触发了子div的onclick事件后,子div进行相应的js操作。但是父div的onclick事件同样会被触发。这就造成了事件的多层并发,导致了页面混乱。这就是冒泡事件。

消除冒泡事件的方法

阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)

下面的一段代码即可以很好的解释是么是冒泡效果,什么叫消除冒泡效果

《!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN“ “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
《html xmlns=“http://www.w3.org/1999/xhtml“>
《head>
《meta http-equiv=“Content-Type“ content=“text/html; charset=gb2312“ />
《script type=“text/javascript“>

function doSomething (obj,evt) {

alert(obj.id);

var e=(evt)?evt:window.event; //判断浏览器的类型,在基于ie内核的浏览器中的使用cancelBubble

if (window.event) {

e.cancelBubble=true;

} else {

//e.preventDefault(); //在基于firefox内核的浏览器中支持做法stopPropagation

e.stopPropagation();

}

}

《/script>
《title>无标题文档《/title>
《/head>

《body>
《div id=“parent1“ onclick=“alert(this.id)“ style=“width:250px;background-color:yellow“>

《p>This is parent1 div.《/p>

《div id=“child1“ onclick=“alert(this.id)“ style=“width:200px;background-color:orange“>

《p>This is child1.《/p>

《/div>

《p>This is parent1 div.《/p>

《/div>

《br />

《div id=“parent2“ onclick=“alert(this.id)“ style=“width:250px;background-color:cyan;“>

《p>This is parent2 div.《/p>

《div id=“child2“ onclick=“doSomething(this,event);“ style=“width:200px;background-color:lightblue;“>

《p>This is child2. Will bubble.《/p>

《/div>

《p>This is parent2 div.《/p>

《/div>
《/body>
《/html>

把代码直接复制后,打开当点击child1时不仅会弹出 child1 对话框还会弹出 parent1

这就是冒泡事件

但是单击chile2只会弹出child2却不会弹出 parent2,这便是应用了阻止冒泡事件的特效的效果.

[此贴子已经被作者于2011-1-7 17:17:47编辑过]


  
“艺镇”官方站:www.zyzsky.com QQ群:1221854  回到顶部
美女呀,离线,留言给我吧!
admin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 司令 亲民勋章
等级:管理员 帖子:3027 积分:27521 威望:0 精华:7 注册:2003/12/30 16:34:32
  发帖心情 Post By:2011/1/7 17:18:25 [只看该作者]

原帖地址:

http://www.fydir.com/Home/article/399/1.aspx?RouteExistingFiles=False&Count=23


  
“艺镇”官方站:www.zyzsky.com QQ群:1221854  回到顶部