在以下程序中使用的函数..。为什么我们在函数mopen('m1')中使用单引号而不是mopen(m1)
<ul id="sddm">
<div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
<a href="#">HTML DropDown</a>
<a href="#">DHTML DropDown menu</a>
<a href="#">JavaScript DropDown</a>
<a href="#">DropDown Menu</a>
<a href="#">CSS DropDown</a>
</div>
</li>
<li>
<a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">Home</a>
发布于 2014-01-21 09:08:08
mopen(m1)
为函数mopen
提供了m1
声明的viarable作为参数。mopen('m1')
将字符串文本'm1'
作为函数mopen
的参数。更新
相应地,将其更新到@Frogmouth's和@MazeHatter的评论:
在您的示例中,mopen(m1)
将触发ReferenceError: m1 is not defined
,除非在javascript代码中将变量m1
定义为a global。
发布于 2014-01-21 09:12:24
当然,这将取决于mopen()做了什么。奇怪的是,对于一个项目,我一定借用了与您相同的代码,mopen()如下所示:
function mopen(id) {
// cancel close timer
mcancelclosetime();
// close old layer
if(ddmenuitem != null) ddmenuitem.style.visibility = 'hidden';
// get new layer and show it
ddmenuitem = document.getElementById(id);
ddmenuitem.style.visibility = 'visible';
}
您在这里看到,您发送的参数是id,然后该参数被发送到document.getElementById(id);
getElementById()需要一个字符串,即HTML中菜单项的id。
在这种情况下,其
<div id="m1"
所以你传入字符串"m1“。
没有引号,m1是一个变量引用。由于您没有名为m1的变量,因此如果您试图读取它,它将导致错误。
发布于 2014-01-21 09:09:41
mopen('m1'); //you pass m1 as a string
mopen(m1); //mp1 an object or a variable
https://stackoverflow.com/questions/21253525
复制相似问题