无需单击按钮即可调用js函数

Edu*_*ter 2 javascript button

问题在于,在单击按钮3之前调用了该函数。我该如何解决该错误,以及为什么button3不起作用?o_O在该代码中找不到我的失败。谢谢

Buttons()

function Buttons() {
  var buttonDivs = document.getElementById('Buttons')
  var buttons = document.createElement('input')
  buttons.setAttribute('type', 'button')
  buttons.setAttribute('name', 'button3')
  buttons.setAttribute('value', 'button3')
  buttons.setAttribute('id', 'btn');
  buttons.onclick = function3('button3');
  buttonDivs.appendChild(buttons)
}

function function3(something) {
  console.log('hello' + something)
}
Run Code Online (Sandbox Code Playgroud)
<div id="Buttons">
  <button onclick="function3('test1')">Button1</button>
  <button onclick="function3('test2')">Button2</button>
  <br><br><br><br>
</div>
Run Code Online (Sandbox Code Playgroud)

Tak*_*aki 11

您在调用函数而不是传递它,而是function3onclick函数内部调用:

buttons.onclick = function(){ function3('button3') };
Run Code Online (Sandbox Code Playgroud)

buttons.onclick = function(){ function3('button3') };
Run Code Online (Sandbox Code Playgroud)
Buttons()

function Buttons() {
  var buttonDivs = document.getElementById('Buttons')
  var buttons = document.createElement('input')
  buttons.setAttribute('type', 'button')
  buttons.setAttribute('name', 'button3')
  buttons.setAttribute('value', 'button3')
  buttons.setAttribute('id', 'btn');
  buttons.onclick = function(){ function3('button3') };
  buttonDivs.appendChild(buttons)
}

function function3(something) {
  console.log('hello' + something)
}
Run Code Online (Sandbox Code Playgroud)