为了账号安全,请及时绑定邮箱和手机立即绑定

关于JavaScript函数参数e?

/ 猿问

关于JavaScript函数参数e?

慕的地6264312 2019-02-13 14:11:08

当我们需要用到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 回答

?
动漫人物

以e为参数的函数一般是以回调函数的形式被调用的。
也就是在event发生的时候回调。
调用的时候 e 就包含了发生事件的具体内容。

function func(e){
e = e || window.event;
... ...
}

这样写的好处就是保证 e 不会为 undefined。
window.event 总是有的。

查看完整回答
反对 回复 2019-03-18
?
饮歌长啸

正确的程序代码如下:
  <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 事件,这样按钮被点击时函数才会执行。



查看完整回答
反对 回复 2019-03-18
?
HUH函数

你这样写就可以了
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>



查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 151 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信