css 禁用任何操作的范围

ss2ws0br  于 2022-11-26  发布在  其他
关注(0)|答案(2)|浏览(123)

我有一个问题,在我的项目。我创建了一些像键盘的刽子手游戏与跨度。在点击的情况下,我需要有禁用跨度的字母,如果用户选择了错误的字母刽子手图像应该改变。但当我点击任何按钮,它看起来像是禁用,因为我改变了颜色

. clickedLetter{

    background-color :....

    opacity:.1;

    pointer-events: none;

}

但字母仍然是可点击的,当你点击禁用字母(span)时,刽子手的图像会发生变化。
我想添加一些内容来阻止任何操作
这是我的代号:

document.addEventListener("click", (e) => {

if(e.target.className ==='boxForLetter')

{ e.target.classList.add("clickedLetter");}

let clickedLetter= e.target.innerHTML;

.......
....
...

我很感激你对这个问题的任何想法

mdfafbf1

mdfafbf11#

问题出在if语句中。
你需要在if语句中运行代码,而不是在它下面。如果你在委托的click处理程序中的if语句下面运行hangman代码,任何点击都会触发hangman代码。另外,我建议检查classlist是否包含类,而不是类名是否等于什么。这更现代,并且允许对象上有更多的类。

if(e.target.classList.contains('boxForLetter'))    
{
   //run hangman code here
   e.target.classList.add("clickedLetter");
   let clickedLetter= e.target.innerHTML;
}
e5nqia27

e5nqia272#

如果我没理解错的话,你想删除已经被点击过的click事件,实际上可以使用pointer-events: none来禁用事件触发器。
第一个

相关问题