今天遇到的问题是这样的:
两个层,一个外层,一个内层,两个层都有onclick事件,点击外层,打开google页面,点击内层,打开baidu页面,我是这样做的<div οnclick="window.open('http://www.google.cn')" style="width:250px;background-color:yellow"> <p>google.cn</p> <div οnclick="window.open('http://www.baidu.com')" style="width:200px;background-color:orange"> <p>baidu.com</p> </div> <p>google.cn</p> </div> 当点击外层的时候,打开google,这里正确的;当点击内层时,出现了即打开baidu,又打开了google,这个效果不是我要的。经过向高人请教,他告诉我一种叫“阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)”可以解决这个问题,我在网上找了相关资料,终于解决了。代码如下:<script type="text/javascript"> function doSomething (obj,evt) { window.open(obj); var e=(evt)?evt:window.event; if (window.event) { e.cancelBubble=true; } else { e.stopPropagation(); } } </script> <div οnclick="window.open('http://www.gztarena.com/');" style="width:250px;background-color:cyan;"> <p>google.cn</p> <div οnclick="doSomething('http://www.baidu.com',event);" style="width:200px;background-color:lightblue;"> <p>baidu.com</p> </div> <p>google.cn</p> </div>