Javascript 为什么我的onclick事件会自动触发
“Hello World”最初在页面加载时显示。我希望它仅在单击按钮后显示。我知道我可以通过向按钮添加内联事件侦听器来实现这一点。我能用脚本编写所有这些代码吗Javascript 为什么我的onclick事件会自动触发,javascript,html,Javascript,Html,“Hello World”最初在页面加载时显示。我希望它仅在单击按钮后显示。我知道我可以通过向按钮添加内联事件侦听器来实现这一点。我能用脚本编写所有这些代码吗 <button id="demo1">Click Me</button> <p id="demo"></p> <script> document.getElementById('demo1').onclick = myFunc
<button id="demo1">Click Me</button>
<p id="demo"></p>
<script> document.getElementById('demo1').onclick = myFunction();
function myFunction() {
document.getElementById("demo").innerHTML = "Hello World"; }
</script>
点击我
document.getElementById('demo1')。onclick=myFunction();
函数myFunction(){
document.getElementById(“demo”).innerHTML=“Hello World”;}
您将立即调用myFunction,然后将返回值(未定义)分配给onclick
document.getElementById('demo1')。onclick=myFunction()代码>
应该是
document.getElementById('demo1')。onclick=myFunction代码>您将立即调用myFunction,然后将返回值(未定义)分配给onclick
document.getElementById('demo1')。onclick=myFunction()代码>
应该是
document.getElementById('demo1')。onclick=myFunction
如果您使用这种类型的事件侦听,并且需要向函数传递多个参数,那么您应该知道Element.onclick=function(evenObjectIsPassedHere){myFunction.call(this,arg1,arg2,arg3);}
就是这样做的。当然,您也可以将事件对象传递给内部函数。我展示了如何使用call
,这样您就可以将this
上下文绑定到您的元素,然后myFunction
可以有类似this.style.color='green'的内容代码>在其中。您还可以在输出元素的上下文中调用它。
如果您使用这种类型的事件侦听,并且需要向函数传递多个参数,那么您应该知道Element.onclick=function(evenObjectIsPassedHere){myFunction.call(this,arg1,arg2,arg3);}
就是这样做的。当然,您也可以将事件对象传递给内部函数。我展示了如何使用call
,这样您就可以将this
上下文绑定到您的元素,然后myFunction
可以有类似this.style.color='green'的内容代码>在其中。您还可以在输出元素的上下文中调用它。