javascript - onclick 在第一次点击时不触发

标签 javascript onclick

注意:关于此主题有一些类似的问题和答案,但它们似乎都适用于更复杂的问题和问题。这个很简单。

我第一次单击按钮时,JavaScript 函数不会触发。在第二次单击和此后的每次单击时,它都会按预期工作。我确信我错过了一些简单的东西,但我无法发现问题。

function changeStyle() {		
	
    var a = document.getElementsByClassName('container')[1];
		
    if (a.style.backgroundColor === 'blue') {
    	a.style.backgroundColor = 'red';
    } else {
	    a.style.backgroundColor = 'blue';
    }
		
}
.container {
    display: block;
    height: 100px;
    background-color: blue;
    border-bottom: 1px solid black;
    cursor: pointer;
}
<div class="container" onclick="changeStyle()"></div>
<div class="container"></div>

最佳答案

由于第一次单击时有 style.background='',因此即使事件正在触发,它仍然保持蓝色。这是解决该问题的一种方法。

function changeStyle() {		
	
    var a = document.getElementsByClassName('container')[1];
    if (a.style.backgroundColor === 'blue' || a.style.backgroundColor === '') {
    	a.style.backgroundColor = 'red';
    } else {
	    a.style.backgroundColor = 'blue';
    }
		
}
.container {
    display: block;
    height: 100px;
    background-color: blue;
    border-bottom: 1px solid black;
    cursor: pointer;
}
<div class="container" onclick="changeStyle()"></div>
<div class="container"></div>

关于javascript - onclick 在第一次点击时不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43920758/

相关文章:

javascript - React js 多选 [object Object], [object Object]

javascript - 这个onclick(onclick ="this.name=' abc'")是什么意思?

javascript - Jquery 无冲突内联

javascript - 音频播放完毕后如何停用 IE 中的播放按钮?

javascript - session 存储刷新启动画面

javascript - 使用 Firefox "Back"按钮时不执行启动 JavaScript 代码

javascript - jquery 中的表多词搜索

android - 让按钮打开浏览器到特定 URL 的最简单方法

javascript 代码与 jquery 一起放置时不起作用

javascript - 如何从.html()返回值获取特定标签数据