javascript - addEventListener 和单击按钮上的 if 语句

标签 javascript if-statement addeventlistener

我是编码新手,在这里我尝试使用 addEventListener 和 if 语句在单击按钮时更改框的颜色,但我没有以正确的方式执行此操作,并且无法在网上找到正确的方法。

var box = document.getElementById("box");
var yes = document.getElementById("yes");
var no  = document.getElementById("no");
yes.addEventListener("click", function(){
    if (yes.clicked == true){
        box.style.backgroundColor = "red";        
    } if(no.clicked == true) {
        box.style.backgroundColor = "green";
    }
});

最佳答案

您仅将监听器应用于"is"按钮,因此您的监听器仅适用于您的"is"按钮:

//Listener attached only to yes
yes.addEventListener("click", function(){
    if (yes.clicked == true){
        box.style.backgroundColor = "red";        
    } if(no.clicked == true) {
        box.style.backgroundColor = "green";
    }
});

因此,您不需要 if 语句来实现您的目的,您只需要各种监听器:

box.addEventListener("click", function(){
     alert("box clicked!");
});

yes.addEventListener("click", function(){
     box.style.backgroundColor = "red";
)};

no.addEventListener("click", function(){
     box.style.backgroundColor = "green";
});

如果您的按钮位于框内,您可以执行此操作而不是上面的功能:

box.addEventListener("click", function(ev){

    if(ev.currentTarget.id == "yes"){
        box.style.backgroundColor = "red";
    }else if(ev.currentTarget.id == "no"){
        box.style.backgroundColor = "green";
    }

});

关于javascript - addEventListener 和单击按钮上的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60476845/

相关文章:

javascript - 为什么我无法将单击事件添加到动态插入的列表元素?

javascript - 为什么 addEventListener 不调用我的 addItem 函数?

javascript - AngularJS 在一个页面上重复使用相同的 Controller ,但配置不同

javascript - 如何在 saga 中解决第一个操作后执行操作?

javascript - Google map 上的所有标签均显示为实心框。可能出了什么问题?

c++ - 将变量与多个值进行比较的最有效方法?

java - 这个错误是选择还是有条件的? ( java )

javascript - Emscripten 生成的代码的 Chrome 分析器中人类可读的函数名称

c - 循环在我的 C 代码中不起作用

javascript - 在多个相同 ID 上使用 addEventListener