<!DOCTYPE html>
<html>
<head>
</head>
<body>
<a href ='http://www.sina.com' id='test'>sina </a>
</body>
<script type="text/javascript">
function addEventSimple(obj,evt,fn) {
if (obj.addEventListener)
obj.addEventListener(evt,fn,false);//冒泡
else if (obj.attachEvent)
obj.attachEvent('on'+evt,fn);
}function test(){
alert('sese');
//return false;
}document.onclick = test;
var a = document.getElementById('test');
a.onclick = function (){
alert('click事件传播到我这了 !');
} //addEventSimple(document,'click',test);
// addEventSimple(a,'click',function (){
// alert('click事件传播到我这了 !');
//});
</script>
</html>上面的代码,我在firefox3.6下运行的结果:
点击超链接 先执行a上的处理函数,后执行 test函数这是为什么,难道传统事件传播是冒泡的,而不是捕获如果把test 函数里的retrun false 注释取消,点击超链接,不能链接到sina
如果是冒泡,先到a ,就执行的a的注册函数,然后是默认操作,再是test函数,为什么
test 函数取消默认操作会影响到a就是二个问题:1 :传统事件注册,事件传统是冒泡 还是捕获
2:为什么在test 里取消默认操作,会影响到 a
解决方案 »
- 我想把我在页面上选择的所有的单选框checkBox,都遍历到。但是,每次都只能拿得到第一个,后面的就拿不到咯。 求助, 帮看一下, 谢
- getElementsByName()的效率问题!
- javascript中的二维数组
- 搞不明白!
- 如何合并这2个菜单?
- 求助~~在线等`~ JavaScript 问题 关于tr背景色
- 奇怪的错误,关于动态加载js
- 服务器上和其他机子上显示的效果不一样!请高手帮忙!!谢谢!!
- 谁知道判断一个对象是否为NULL的函数是哪一个?
- 如何得到当前元素是父元素的第几个??
- 求救:jQuery.js Prototype.js共存 jQuery.fn.extend 扩展jQuery非Prototype ,冲突了
- js如何解释json????不用jquery
2.在冒泡中,只要某一层return false了,就拒绝了,点击动作的默认事件了。也就是跳转
1.确实默认是冒泡,好象firefox可以把捕获开启,ie不能,在哪看了一眼,忘记具体怎么说的了!
2.这个链接到sina好象是link事件吧!应该有点特殊,不象.onclick那样直接绑在对象上~比如document.links就可以拿到页面所有的link组成的数组!冒到最后才执行?
你要是写在<a>上再写一个winodw.open函数直接把href打开,那test()的return false肯定拦不住!
ff:支持冒泡型和捕获型事件捕获型事件发生在冒泡型事件之前,事件的开始点好像都是从window对象开始的,结束点也是window,这个记不清楚了如果不想继续冒泡的话可以renturn false 就可以阻止冒泡了,还有一个方法是调用一个函数,具体记不的了建议在绑定事件的时候最好判断支持的事件模型,这样兼容性更好
IE 冒泡
FF 捕获
http://www.jslab.org.cn/?tag=capture