停止Javascript函数的一部分自动启动



是否可以停止脚本并等待用户输入后再继续?这是我需要停止的部分:

var nName = document.getElementById("b1");
nName.innerHTML = "Continue";
document.getElementById("b1").onclick = newName();

所以"b1"是一个HTML按钮,我想在之后停止它

nName.innerHTML = "Continue";

并在启动之前等待用户点击按钮

document.getElementById("b1").onclick = newName();

使用return完全停止脚本。有其他可能的方法吗?

您不需要停止脚本。你不能。

传递对函数的引用(函数名上没有附带说明(,如下所示:

document.getElementById("b1").onclick = newName;

示例:

function firstClick(){
document.getElementById('b1').innerHTML = "Continue"
// override the first click listener. "firstClick" will no longer be called.
document.getElementById('b1').onclick = newName;
}
function newName(){
document.getElementById('b1').innerHTML = "Good Job!"
}
// listen for first click
document.getElementById('b1').onclick = firstClick
<button id=b1>Click Me!</button>

为了完全理解发生了什么,我必须推荐你做谷歌和文档,最重要的是——实验。

但简而言之,不是技术性的。

onclick自己什么也不做。它需要被告知它的作用。浏览器会按照你的指示执行。它只能分配一个函数。因此,如果你执行onclick=a; onclick=b; onclick=c,则只会调用c

如果用paranthesignonclick = newName()分配函数名,那么您所做的就是运行newName((并将其返回值分配给onclick。所以在这种情况下——什么都没有。如果您执行onclick=newName,则borwser将自动添加副题。


您甚至可以创建一个"试验"功能来决定下一步是什么:

function triage(){
var el = document.getElementById('b1');
if (el.innerHTML == "Continue"){
el.innerHTML = 'Good Job!';
}else{
el.innerHTML = 'Continue';
}
}
// listen for first click
document.getElementById('b1').onclick = triage
<button id=b1>Click Me!</button>

最新更新