首次单击后,单击“更改”按钮

时间:2018-01-10 21:54:37

标签: javascript html button

我有一些努力让这个工作。 我有一个按钮,我希望它执行Javascript函数A,并且在该函数A中,我想将Onclick更改为函数B.因此当用户点击按钮时获得结果,它是第二次,它是执行B.使用

<Button onclick="A();">Click me</button>
<script>
Function A() {
document.getElementById("button").onclick=B();
}
Function B() {
Alert("hello world");
}

在功能A()中,它不会执行FIRST A,在B之后,它会立即执行B.任何人都可以帮助我吗?谢谢:))

4 个答案:

答案 0 :(得分:1)

您正在使用B()致电B.

使用document.getElementById("button").onclick=B;。请注意B之后没有括号。

答案 1 :(得分:0)

您可以使用Jquery更改按钮的任何属性。下面,我将onclick属性更新为执行函数B()

function A() {
  $('#toggler').attr('onclick', 'B()');
}

function B() {
  console.log('Updated to B()!');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="toggler" onclick="A()">Click me!</button>

答案 2 :(得分:0)

使用id代替onclick代替button,然后从javascript定位,如下所示:

&#13;
&#13;
function b()
{
   console.log('I am in B.')
}

function a()
{
  console.log('I am inside A.');

  button1.removeEventListener('click', a);
  button1.addEventListener('click', b);
}

var button1 = document.getElementById('button1');  // get the button element

button1.addEventListener('click',a); // assigns a click listener to a() at the beginning
&#13;
<Button id="button1">Click me</button>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

使用括号编写函数名时,如B(),立即调用函数。相反,您需要将onclick设置为函数的名称AB

您的整体解决方案可能如下所示:

function A(event) {
  // Function logic...
  event.target.onclick = B;
}

function B() {
  // Function logic...
}

document.getElementById("button").onclick = A;