我有一个不起作用的简单javascript onclick函数调用,我一直盯着我看,看不到任何错误,我觉得我必须忽略一些超级简单的东西,但我看不到什么!
https://jsfiddle.net/sanfly/tob4dugj/
HTML:
<p id="demo"></p>
<button onclick="myFunction()">Click me</button>
JS:
function myFunction() {
document.getElementById("demo").innerHTML = "Hello World";
}
错误:
Uncaught ReferenceError: myFunction is not defined at HTMLButtonElement.onclick
答案 0 :(得分:1)
这是因为JSFiddle将JavaScript放在了一个看不见的隐式闭包中。太好了,您的函数在该范围内本地定义,按钮无法访问它。
将其全局化(出于其他原因,这是一个可怕的想法),可以解决此问题:
myFunction = function() { //make it global
document.getElementById("demo").innerHTML = "Hello World";
}
这也是摆脱内联(即HTML内)事件处理,而转向集中式addEventListener()
的好时机。