javascript - DIV 使用事件处理程序更改颜色 "click"

标签 javascript loops events for-loop event-handling

我想创建一个事件,单击 DIV 后它们会更改为随机颜色。我相当有信心这是一般设置,但我只是忽略了一些小错误......

HTML

<style>
    .square {
        width: 100px;
        height: 100px;
        background-color: #000000;
        margin: 5px;
    }
</style>

<div id="container">
    <div class="square"></div>
    <div class="square"></div>
    <div class="square"></div>
    <div class="square"></div>
</div>

JAVASCRIPT

var squareRef = document.getElementById("container");

for(var i = 0; i < squareRef.length; i++) {
    squareRef[i].addEventListener("click", changeColor);
}

function changeColor(event) {
    event.target.style.backgroundColor = "randomColor()";
}


function randomColor() {
    var randomRed = Math.floor(Math.random() * 255);
    var randomGreen = Math.floor(Math.random() * 255);
    var randomBlue = Math.floor(Math.random() * 255);
    //create the string that is the ‘random color’
    var randomColor = "rgb("+randomRed+","+randomGreen+","+randomBlue+")";

    return randomColor;
}

最佳答案

这是一个 fiddle :http://jsfiddle.net/r2vfa2s4/

有两件事。

将第一行更改为:

var squareRef = document.getElementsByClassName("square");

调用 randomColor() 时删除引号。即:

event.target.style.backgroundColor = randomColor();

关于javascript - DIV 使用事件处理程序更改颜色 "click",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26901717/

相关文章:

javascript - 在纯javascript中选择任何随机div后,如何通过每次点击在循环中一个接一个地选择nextElementSibling项目?

JavaScript 原型(prototype)属性

javascript - 如何在 Javascript 中仅使用其引用来更改对象

JavaScript 研究。 Map() 代码是如何执行的?

python - 在 Python 字典中访问同级字典值的最有效方法是什么?

python - 递归比迭代更糟糕吗?

Jquery添加href而不是click事件

javascript - JQuery,为什么我的 mousemove 监听器不传递事件对象?

events - 服务级别的Grails域类事件监听器

javascript - 允许 Firebase 中的非注册用户执行特定操作