2017-10-12 114 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

相關問題