javascript - 如何在每次点击时快速更改元素的背景颜色

标签 javascript jquery

我有一个元素,我想在单击时更改背景颜色(例如:更改为蓝色)并立即更改回白色(#FFF)。我不想在这里切换。

('form').on('click', 'div', function(e) {
     e.preventDefault();
     $(this).addClass("blue-bkground").animate({backgroundColor:'#FFF'}, 300).removeClass("blue-bkground"); 
}

上面的代码可以工作一次,即我可以看到一次效果,但在后续点击时不再工作。

最佳答案

动画完成后需要删除类,所以将其放在animate的完整函数中。

$('form').on('click', 'div', function (e) {            
            $(this).addClass("blue-bkground").animate({ backgroundColor: '#FFF' }, 300, function () { $(this).removeClass("blue-bkground"); });            
        });
.blue-bkground
{
	background-color:blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form>
    <div>Click here</div>
</form>

关于javascript - 如何在每次点击时快速更改元素的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32228272/

相关文章:

javascript - 为什么IE10说 `Object doesn' t支持属性或方法 'appendchild'`

javascript - 动态改变div及其所有内容的大小?

jquery - 将鼠标悬停在 DIV 上以展开宽度

javascript - 加速:visible:input selector avoiding filter

javascript - 为什么模态 MaterializeCSS 打不开

javascript - 反转 Exp 函数。对数刻度

javascript - 创建元素 ID "on the fly"在 jQuery 中不起作用

javascript - Puppeteer 在当前窗口而不是新窗口中启动一个新选项卡

javascript - CSS 和 JavaScript 不会在悬停时按预期切换

javascript - 如何确保ajax调用完成时运行代码?