繁体   English   中英

防止多次点击按钮

[英]Prevent multiple clicks on button

我有一个小测验,有 3 个问题。 如果用户点击正确答案,我想计算积分。 我做到了,但它计算了我所有的点击次数(即使用户在同一个答案上多次点击)。 如何预防?

<section>
    <p>Lorem Ipsum1</p>
    <button class="answer">14</button>
    <button class="answer">18</button>
    <button class="answer correct">23</button>
    <br />
    <br />
    <p>Lorem Ipsum2</p>
    <button class="answer">Kalisz</button>
    <button class="answer correct">Poznań</button>
    <button class="answer">Łódź</button>
    <br />
    <br />
    <p>Lorem Ipsum3</p>
    <button class="answer correct">Paulina</button>
    <button class="answer">Wanda</button>
    <button class="answer">Ania</button>
    <br />
</section>

JS

// Variables
var correct = document.getElementsByClassName('correct');
var sum = 0;

// Points sum
for(var i=0; i < correct.length; i++)
 correct[i].addEventListener( 'click', function(){
 sum +=1;
});

只需将您的 javascript 代码更改为:

// Zmienne
var correct = document.getElementsByClassName('correct');
var sum = 0;

function increaseScore() {
    sum +=1;
    console.log(sum);
    this.removeEventListener('click', increaseScore);
}
// Sumowanie punktów
for(var i=0; i < correct.length; i++)
    correct[i].addEventListener( 'click', increaseScore);

这会增加第一次点击的总和,并删除之后点击按钮的事件监听器,所以总和只会增加一次。

只需在第一次点击后删除点击处理程序

 // Zmienne var correct = document.getElementsByClassName("correct"); var sum = 0; function updateCountDisplay () { document.getElementById('count').innerText = sum } function handleClick(elm) { elm.addEventListener("click", function handler() { elm.removeEventListener("click", handler); sum++; updateCountDisplay() }); } updateCountDisplay(); // Sumowanie punktów for (var i = 0; i < correct.length; i++) { handleClick(correct[i]); }
 <section> <p>Lorem Ipsum1</p> <button class="answer">14</button> <button class="answer">18</button> <button class="answer correct">23</button> <br /> <br /> <p>Lorem Ipsum2</p> <button class="answer">Kalisz</button> <button class="answer correct">Poznań</button> <button class="answer">Łódź</button> <br /> <br /> <p>Lorem Ipsum3</p> <button class="answer correct">Paulina</button> <button class="answer">Wanda</button> <button class="answer">Ania</button> <br /> </section> <div> correct count <span id="count"></span> </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM