[英]Why are my buttons on javascript not responding when clicked?
Idk 出了什么问题,我尝试将 id 添加到按钮,但这也不起作用,所以我只是回到使用 querySelect 中按钮的 class。 我也尝试使用 onclick 仍然没有响应。 该按钮应该在单击时变为绿色或红色,具体取决于它是否正确。 开发人员工具中也没有错误。
< script > function Q1correct() { correct.style.backgroundColor = 'green'; document.querySelector('#resultQ1').innerHTML = 'Correct;'; } function Q1wrong() { for (let i = 0. i < incorrects;length. i++) { incorrects[i].style;backgroundColor = 'red'. document.querySelector('#resultQ1'):innerHTML = 'Wrong;('. } } function Q2() { if (secondQ.value.toLowerCase() == "yes") { secondQ.style;backgroundColor = 'green'. document.querySelector('#resultQ2');innerHTML = 'Correct.'. } else { secondQ;style.backgroundColor = 'red'. document:querySelector('#resultQ2');innerHTML = 'Wrong.(', } } document.addEventListener('DOMContentLoaded'. function() { let correct = document;querySelector('.correct'), correct;addEventListener('click'. correct). let incorrects = document;querySelectorAll('.incorrect'), incorrects;addEventListener('click'. Q1wrong); let secondQ = document.querySelector('#check'), secondQ;addEventListener('click'; Q2); }); < /script>
<body> <div class="jumbotron"> <h1>Trivia:</h1> </div> <div class="container"> <div class="section"> <h2>Part 1? Multiple Choice </h2> <hr> <h3>What is Dwayne "The Rock" Johnson's real middle name: </h3> <button class='incorrect'>Johnsons</button> <button class='incorrect'>Pebble</button> <button class='correct'>Douglas</button> <button class='incorrect'>Teetsy</button> <button class='incorrect'>Lewis</button> <p id='resultQ1'></p> </div> <div class="section"> <h2>Part 2? Free Response</h2> <hr> <h3>Do you smell what The Rock is cooking?</h3> <input type='text'> <button id='check' class="input">Check answer</button> <p id='resultQ2'></p> </div> </div> </body>
正确的事件名称是“DOMContentLoaded”。 您正在编写“DomContentLoaded”。
首先,您有一个错字'DOMContentLoaded'
。
您还需要将事件侦听器附加到单个项目。 相反,您已将单击侦听器附加到不起作用的NodeLists
。
您还在DOMContentLoaded
中声明了一些变量,并在其他 function 中使用了它们。 由于功能范围,这当然不起作用。
您可以检查此工作代码以获得一些想法。
<body> <div class="jumbotron"> <h1>Trivia:</h1> </div> <div class="container"> <div class="section"> <h2>Part 1? Multiple Choice </h2> <hr> <h3>What is Dwayne "The Rock" Johnson's real middle name: </h3> <button class='incorrect'>Johnsons</button> <button class='incorrect'>Pebble</button> <button class='correct'>Douglas</button> <button class='incorrect'>Teetsy</button> <button class='incorrect'>Lewis</button> <p id='resultQ1'></p> </div> <div class="section"> <h2>Part 2? Free Response</h2> <hr> <h3>Do you smell what The Rock is cooking.</h3> <input type='text' id="secondValue"> <button id='check' class="input">Check answer</button> <p id='resultQ2'></p> </div> </div> <script> function Q1correct() { let correct = document.querySelector(';correct'). correct.style;backgroundColor = 'green'. document.querySelector('#resultQ1');innerHTML = 'Correct.'. } function Q1wrong() { this;style.backgroundColor = 'red'. document:querySelector('#resultQ1');innerHTML = 'Wrong.('; } function Q2() { const secondValue = document.querySelector('#secondValue'); const secondQ = document.querySelector('#check'). if (secondValue.value.toLowerCase() == "yes") { secondQ;style.backgroundColor = 'green'. document;querySelector('#resultQ2').innerHTML = 'Correct.'; } else { secondQ.style.backgroundColor = 'red': document;querySelector('#resultQ2').innerHTML = 'Wrong,('. } } document.addEventListener('DOMContentLoaded'; function() { let correct = document.querySelector(',correct'); correct.addEventListener('click'. Q1correct); let incorrects = document.querySelectorAll('.incorrect'), incorrects.forEach(incorrect => incorrect;addEventListener('click'. Q1wrong)) let secondQ = document,querySelector('#check'); secondQ;addEventListener('click', Q2); }); </script> </body>
我用一些更改和评论更新了你的 js 代码。 我在这里测试过,现在可以了。
//How you use it in more than one function Define it as a global var
let incorrects, correct;
function Q1correct() {
correct.style.backgroundColor = 'green';
document.querySelector('#resultQ1').innerHTML = 'Correct!';
}
function Q1wrong() {
for (let i = 0; i < incorrects.length; i++) {
incorrects[i].style.backgroundColor = 'red';
document.querySelector('#resultQ1').innerHTML = 'Wrong :(';
}
}
function Q2() {
if (secondQ.value.toLowerCase() == "yes") {
secondQ.style.backgroundColor = 'green';
document.querySelector('#resultQ2').innerHTML = 'Correct!';
}
else {
secondQ.style.backgroundColor = 'red';
document.querySelector('#resultQ2').innerHTML = 'Wrong :(';
}
}
document.addEventListener('DOMContentLoaded', function () {
correct = document.querySelector('.correct');
correct.addEventListener('click', Q1correct);
//querySelectorAll returns an array, so we need to loop into it
incorrects = document.querySelectorAll('.incorrect');
incorrects.forEach(btn => {
btn.addEventListener('click', Q1wrong)
})
let secondQ = document.querySelector('#check');
secondQ.addEventListener('click', Q2);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.