我对此代码有疑问,当我点击按钮时,它应该执行“hello”功能并打开警报,但它不起作用。
function hello(){
alert("hi");
}
document.getElementById("one").onclick = hello();
<button id="one">Click me </button>
我知道我可以这样做
button onclick="hello()";但是我需要它来使用javascript版本。基本上我的问题是:当我点击按钮而没有将onclick放在按钮标签中时,是否有办法打开“hello”功能?
答案 0 :(得分:3)
这是一个常见问题,但我无法找到将您链接到的规范答案。
你的问题在这一行:
document.getElementById("one").onclick = hello()
执行函数hello
然后将该函数的返回值赋给onclick
。
你真的想要这个:
document.getElementById("one").onclick = hello;
为onclick属性分配函数引用。
尽管如此,onclick
的使用已经过时,建议使用addEventListener
,原因有很多。
答案 1 :(得分:1)
您必须为onclick
属性分配一个函数。
您立即调用hello
函数并指定其返回值(undefined
)。
不要将()
放在函数名后面。
document.getElementById("one").onclick = hello;