如何在JavaScript中检查div类是否被点击?

uxh89sit  于 2023-05-21  发布在  Java
关注(0)|答案(3)|浏览(282)

我想检查一个div类元素是否被点击过。在Javascript中有没有办法。我有一个条件语句,它检查样式是否具有某些属性,但我不知道如何检查该条件语句中的div类是否已被单击...
以下是我目前为止的代码:

let a = document.getElementsByClassName("roll")[0];
let b = document.getElementsByClassName("effect")[0];

a.onclick = function(){
    b.setAttribute('style','border-right:4px solid #aa2e27')
}

a.onmouseover = function(){
    if(b.hasAttribute('style','border-right:none') && a.onclick.value == "true"){
        b.setAttribute('style','border-right:4px solid #aa2e27');
    }
}

正如您所看到的,if条件发生在mouseover事件上。有办法检查吗?(我在鼠标悬停时输入的内容不会触发)

q3aa0525

q3aa05251#

若要检查具有特定类的元素是否已被单击,可以在该元素上使用事件侦听器,并在单击事件发生时更新变量。下面是一个例子:

let divElement = document.getElementsByClassName("roll")[0];
let isClicked = false;

divElement.addEventListener("click", function() {
  isClicked = true;
  // Additional code to execute when the div is clicked
});

// You can then use the `isClicked` variable in your conditional statement
divElement.addEventListener("mouseover", function() {
  if (b.hasAttribute("style", "border-right:none") && !isClicked) {
    b.setAttribute("style", "border-right:4px solid #aa2e27");
  }
});

在这段代码中,我们将isClicked变量初始化为false。当点击带有“roll”类的元素时,我们将isClicked设置为true。然后,在mouseover事件侦听器中,我们在应用所需样式之前检查isClicked是否为false。
通过对单击事件使用事件侦听器,可以捕获单击的时刻并相应地更新状态。

x6yk4ghg

x6yk4ghg2#

您可以在外部范围中创建一个变量来跟踪它,如下所示:

let a = document.getElementsByClassName("roll")[0];
let b = document.getElementsByClassName("effect")[0];
let aClicked = false;

a.onclick = function(){
    b.setAttribute('style','border-right:4px solid #aa2e27');
    aClicked = true;
}

a.onmouseover = function(){
    if(b.hasAttribute('style','border-right:none') && aClicked){
        b.setAttribute('style','border-right:4px solid #aa2e27');
    }
}
u3r8eeie

u3r8eeie3#

这是个可行的解决方案。只需添加一个事件监听器并更新全局变量。

var clicked = "not clicked"
document.getElementById('amiclicked').addEventListener("click", function() {
  clicked = "clicked";
  console.log(clicked)
});


console.log(clicked)
<div id='amiclicked'>
  click me
</div>

相关问题