2017-10-12 113 views
0

加载页面时会首先显示“Hello World”。我希望它在点击按钮后才显示。我知道我可以通过将内联事件监听器添加到按钮来完成此操作。我可以在脚本中编写所有这些代码吗?为什么我的onclick事件会自动触发

 <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> 

回答

5

你立即调用myFunction的,然后分配返回值(这是不确定的)来的onclick

document.getElementById('demo1').onclick = myFunction();

应该

document.getElementById('demo1').onclick = myFunction;

+0

如果你使用这种风格的事件侦听,你需要传递多个参数给你的函数,那么你应该知道'Element.onclick = functio n(evenObjectIsPassedHere){myFunction.call(this,arg1,arg2,arg3);你是怎么做的。当然,你也可以将事件对象传递给你的内部函数。我显示使用'call',所以你可以将'this'上下文绑定到你的Element,然后'myFunction'可以有'this.style.color ='green';'这样的东西。你也可以在输出元素的上下文中调用()。 – PHPglue

相关问题