#javascript #function #onclick #htmlbutton
Вопрос:
Начинающий разработчик здесь. В настоящее время я пытаюсь создать три кнопки, которые будут вызывать одну и ту же функцию, но приведут к трем разным результатам. Это то, что у меня есть до сих пор:
HTML
<div class="button-wrapper">
<button class="btn btn-success" onClick="progressStatus(load)">Loading</button>
<button class="btn btn-warning" onClick="progressStatus(warning)">Slow Connection</button>
<button class="btn btn-danger" onClick="progressStatus(error)">Error Message</button>
</div>
<div class="progress-margin">
<h2 id="progress-h2">Your Progress</h2>
<div id="progress-bar">
<div id="myBar"></div>
</div>
</div>
JS
function progressStatus(status) {
let elem = document.getElementById("myBar")
let width = '';
let bgColor = '';
let innerText = '';
// if error
if (status==error) {
width = 100;
bgColor = red;
innerText = "Something is wrong! Error";
}
// if slow
if (status==warning) {
width = 100;
bgColor = yellow;
innerText = "Slow Connection";
}
// if load
if (status==load) {
function frame() {
}
elem.style.width = width;
elem.style.backgroundcolor = bgColor;
elem.innerHtml = innerText;
console.log() = status;
}
}
Теперь, прежде чем я даже продолжу работать с кодом, я хотел посмотреть, смогу ли я получить событие click на кнопке ошибки, чтобы просто зарегистрировать console.log(). Но, к сожалению, я получаю следующую ошибку:
ReferenceError: progressStatus is not defined
at HTMLButtonElement.onclick (/:14:76)
Я знаю, что мне чего-то не хватает, и я ищу сообщество, которое могло бы мне помочь. Спасибо.
Комментарии:
1. Я не вижу там ничего плохого в вашем коде. Я только что протестировал ваш код, и он отлично работает без каких-либо ошибок.
2. в чем заключается ценность
load
inprogressStatus(load)
? и где это определено ?3. Даже когда вы нажимаете на кнопку «Ошибка»? Это то, что я сейчас тестирую.
4. Вам нужно включить скрипт на html — страницу с помощью
<src>
тега?5. @Полруни… Черт возьми, лишнее письмо… я напечатал
scripts.js
вместоscript.js
этого . Спасибо. Это устранило одну проблему, в то время как ответ @Matthias помог мне решить другую проблему. Перейдем к следующим вопросам. Спасибо всем, кто заглянул.
Ответ №1:
Отдельная проблема , которую я вижу, заключается в том, что JavaScript думает, что вы говорите о переменных при вводе load
, warning
и error
. Вместо этого используйте двойные кавычки вокруг каждой из них, чтобы определить текст как строку:
if (status=="load") {
function frame() {
}
В то же время убедитесь, что ваш файл сценария правильно связан.