Можно ли остановить скрипт и дождаться ввода пользователя, прежде чем продолжить? Вот часть, которую мне нужно остановить:
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, но нужно ли создавать его после щелчка пользователя? У меня разбился мозг.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Останавливать скрипт не нужно. Ты не можешь.
Передайте ссылки на функции (без скобок в именах функций) следующим образом:
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>Для того, чтобы полностью понять, что происходит, я должен направить вас к Google и документации, и, прежде всего, к экспериментам.
Но если коротко, то не в техническом плане.
onclick сам по себе ничего не делает. Нужно сказать, что он делает. Браузер сделает то, что вы ему скажете. Ему может быть назначена только 1 функция. Итак, если вы выполните onclick=a; onclick=b; onclick=c, будет вызываться только c.
Если вы назначаете имя функции с помощью парантезы onclick = 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>Думаю, я пропустил там объяснение. Я хочу сделать следующее: когда я нажимаю кнопку в первый раз, он запускает первый скрипт, переименовывает кнопку и останавливается на этом, подождите, пока пользователь снова нажмет кнопку, и выполните скрипт newName ().
Это то, что я искал, большое спасибо! Но для ясности не могли бы вы объяснить логику кода? Я все еще изучаю JS, и мне есть чему поучиться.
Неа. JS - это не CPP, все дело в асинхронных материалах и обратных вызовах. Я бы просто добавил return вместо последнего оператора. И поместите последнюю строку в обратный вызов нажатия кнопки.