javascript点击游戏使用较少的html

标签 javascript html

我正在制作一个基本的 javascript 游戏,您需要在特定时间段内单击多个图像。 (当前为 4 秒)

我的 JavaScript 看起来像这样

document.getElementById("myBtn").addEventListener("click", countdown);
function countdown() {
setTimeout(function(){ 
prompt("you got" + counter);   
}, 4000);

}

var counter = 0;
function countup() {
counter = counter + 1;
}

虽然这确实有效,但我的 HTML 中的每个 img 都必须具有:

onclick="countup(); this.onclick=null"

20张照片已经很多了。我的问题是,有没有办法浓缩这个?一些js方法按类收集所有图片并对其应用点击计数和null?

最佳答案

您可以使用 document.querySelectorAll() 选择所有图像并添加事件监听器来计数并删除事件监听器,如下所示:

function handleClick(e)
{
    countup();
    e.target.removeEventListener('click', handleClick);
}

var images = document.querySelectorAll('img'); 
for (var i = 0; i < images.length; i++) 
{
    images[i].addEventListener('click', handleClick);
}

有关 document.querySelectorAll 的更多信息:https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll

您还可以在 querySelectorAll 中使用类名,传入“.myClass”

关于javascript点击游戏使用较少的html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33743105/

相关文章:

javascript - 在每个函数中将属性从一个元素填充到另一个元素

javascript - 如何在 KaTex 中对公式进行装箱?

javascript - jQuery 附加和前置 div 和点击事件

javascript - 在单击函数上将模型值传递给 @Html.CheckBoxFor

javascript - Node和HTML结合在一起,可能吗?

javascript - 如何用多个事件处理程序触发一个函数(更改)

javascript - 输入更改时从一组输入中删除内容

javascript - Firefox 不会更新对 CSS 动画的更改

html - 使用golang将html模板作为文本字段存储在数据库中

ios - 移动 Web 应用程序积分错误的解决方法?