我不知道为什么下面的代码不起作用!但如果我将var eva = function(){alert("hello");}
更改为function eva() {alert("hello");}
,则可行。
var myForm = document.forms["form1"];
myForm.addEventListener("submit", eva);
var eva = function() {
alert("hello");
}
答案 0 :(得分:2)
eva
未在您使用它的位置定义。
然而,这确实有效:
var myForm = document.forms["form1"];
var eva = function() {
alert("hello");
}
myForm.addEventListener("submit", eva);
答案 1 :(得分:2)
通过eva
添加addEventListener
函数时,它是一个未定义的变量。然后,将其设置为函数。基本上,当你像你一样写它时:
var myForm = document.forms["form1"];
myForm.addEventListener("submit", eva);
var eva = function() {
alert("hello");
}
你有效地写了这个:
var myForm = document.forms["form1"];
var eva; // = undefined
myForm.addEventListener("submit", eva);
eva = function() {
alert("hello");
}
var
的声明获得hoisted,但不是作业。通过使用函数声明,function eva() { ... }
获得类似hoisted到范围的顶部,并且在将其传递给addEventListener
时是一个有效的函数。
所以,你有两个选择:
addEventListener
之上。