关于JavaScript函数参数e
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JavaScript函数参数e相关的知识,希望对你有一定的参考价值。
当我们需要用到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>
....
劳驾各位,好回答给分翻倍。
也就是在event发生的时候回调。
调用的时候 e 就包含了发生事件的具体内容。
function func(e)
e = e || window.event;
... ...
这样写的好处就是保证 e 不会为 undefined。
window.event 总是有的。 参考技术A 正确的程序代码如下:
<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 事件,这样按钮被点击时函数才会执行。 参考技术B 你这样写就可以了
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>
关于函数参数的 Javascript 元素子项
【中文标题】关于函数参数的 Javascript 元素子项【英文标题】:Javascript element children about function parameter 【发布时间】:2018-06-09 19:20:08 【问题描述】:以下是制作杂耍的部分代码。让我困惑的是:
在这种情况下,参数“容器”的等效 DOM 节点是什么?
有一堆元素,怎么认为<img>
元素是container.children?
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div id="slideshow">
<img src="https://www.kasandbox.org/programming-images/animals/birds_rainbow-lorakeets.png" />
<img src="https://www.kasandbox.org/programming-images/animals/butterfly.png" />
<img src="https://www.kasandbox.org/programming-images/animals/cat.png" />
<img src="https://www.kasandbox.org/programming-images/animals/crocodiles.png" />
<img src="https://www.kasandbox.org/programming-images/animals/fox.png" />
</div>
<script>
var slideShow = function(container)
this.images = [];
this.curImage = 0;
for (i = 0; i < container.childElementCount; i++)
this.images.push(container.children[i]);
this.images[i].style.display = "none";
【问题讨论】:
在 DOM 层次结构中直接嵌套在另一个元素中的元素是它的子元素。 所以<head>
和<body>
是<html>
的孩子,<div>
和<script>
是<body>
的孩子,图片是<div id="slideshow">
的孩子
【参考方案1】:
container
是您调用new slideShow()
时传递的任何元素。在你的情况下,它应该是:
var ss = new slideShow(document.getElementById('slideshow'));
那么container.children
就是直接嵌套在那个DIV里面的元素,都是<img>
元素。
【讨论】:
是的,我完全是个笨蛋。脚本代码最后一行是slideShow(document.getElementById("slideshow"));
难怪我这么糊涂... Thx以上是关于关于JavaScript函数参数e的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript--关于实例对象带不带参数和构造函数带不带参数的关系
将 Javascript 函数作为参数传递 - 这个逻辑是如何工作的?