当我们需要用到event事件的属性或方法时有时候会这样写,如下列语句:
...
function func(e){
var e = e?e:window.event;
...
}
这个e放到函数里面作为一个参数到底什么意思,这种形式到底什么意思,有没有关于这种用法形式原理的详细解释或者参考手册?以下为通过这个方式写的一段代码,firefox下报错 ' e is undefined',错在哪里:(将该段代码替换head头的<script></script>标签即可)
....
<script type="text/javascript">
window.onload = function(){
a();
}
function cancelBubble(e){
var e = e?e:window.event;
if(window.event) e.cancleBubble = true;
else e.stopPropagation(); ///////////报错点: e is undefined
}
function a(e){
var e = new event();
alert(e);
cancelBubble(e);
}
function b(){
alert(1);
}
</script>
....
3 回答

正确的程序代码如下:
<script type="text/javascript">
window.onload = function(){
a();
}function func(e){
e = e || window.event;
if(window.event) e.cancleBubble = true;
else e.stopPropagation(); ///////////报错点: e is undefined
}
function a(e){
var e = new event();
alert(e);
cancelBubble(e);
}
function b(){
alert(1);
}
</script>
JavaScript函数:
将脚本编写为函数,就可以避免页面载入时执行该脚本。 函数包含着一些代码,这些代码只能被事件激活,或者在函数被调用时才会执行[1] 。
你可以在页面中的任何位置调用脚本(如果函数嵌入一个外部的 .js 文件,那么甚至可以从其他的页面中调用)。函数在页面起始位置定义,即 <head> 部分。
<html>
<head>
<script type="text/javascript">
function displaymessage() {
alert("Hello World!")
}
</script>
</head>
<body>
<form>
<input type="button" value="Click me!" onclick="displaymessage()">
</form>
</body>
</html>
假如上面的例子中的 alert("Hello world!!") 没有被写入函数,那么当页面被载入时它就会执行。当用户击中按钮时,脚本才会执行。我们给按钮添加了 onClick 事件,这样按钮被点击时函数才会执行。

你这样写就可以了
function doSomething(e) {
if (!e) var e = window.event
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
}
---------------------------------------------
是你传递,创建event的方法不对
下面是我修改后的代码你看看
---------------------------------------------
<script type="text/javascript">
window.onload = function(e){
a(e);
}
function cancelBubble(e){
var e = e?e:window.event;
if(window.event) e.cancleBubble = true;
else e.stopPropagation(); ///////////报错点: e is undefined
}
function a(e){
//var e = new event();
alert(e);
if(!e) var e = window.event;
alert(e);
cancelBubble(e);
}
function b(){
alert(1);
}
</script>
添加回答
举报