单击以更改元素颜色
Click to change element color
我写了这个小脚本来单击时更改类颜色,它可以工作,但我会通过第二次单击恢复原色。
function changeColor1() {
document.getElementById("ip-custom").className = "red";
}
function init() {
document.getElementById("ip-custom").onclick = changeColor1;
}
window.onload = init();
.red {
color: #f00;
}
<button id="ip-custom">Example</button>
您可以像
下面这样切换类red
。
function changeColor1() {
document.getElementById("ip-custom").classList.toggle('red');
}
完整片段
function changeColor1() {
document.getElementById("ip-custom").classList.toggle('red');
}
function init() {
document.getElementById("ip-custom").onclick = changeColor1;
}
window.onload = init();
.red {
color: #f00;
}
<button id="ip-custom">Example</button>
如果你想使用普通的js,请使用classList.toggle
函数:
function changeColor1() {
document.getElementById("ip-custom").classList.toggle('red');
}
如果你使用 jQuery,你可以使用 toggleClass
函数:
function changeColor1() {
$("#ip-custom").toggleClass("red");
}
- 类列表文档
- 切换类文档
既然你已经包含了标签jquery
,我将使用它和普通的旧JavaScript提供一个答案。
JavaScript
检查类是否存在,以确定是否应添加或删除它。
function changeColor1() {
if (document.getElementById("ip-custom").className == "red")
document.getElementById("ip-custom").className = "";
else
document.getElementById("ip-custom").className = "red";
}
function init() {
document.getElementById("ip-custom").onclick = changeColor1;
}
window.onload = init();
.red {
color: #f00;
}
<button id="ip-custom">Example</button>
jQuery
你可以使用 jQuery 的 toggleClass()
方法。
在匹配元素集中的每个元素中添加或删除一个或多个类,具体取决于类的存在或状态参数的值。
$(function() {
$('#ip-custom').on('click', function() {
$(this).toggleClass('red');
});
});
.red {
color: #f00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="ip-custom">Example</button>
此解决方案仅适用于元素没有类的情况。因此,它添加了红色类 o 删除所有扣屑;
function toggleClassRed() {
var element = document.getElementById("ip-custom"),
clazz = element.className || '';
element.className = clazz === '' ? 'red' : '';
}
function init() {
document.getElementById("ip-custom").onclick = toggleClassRed;
}
window.onload = init();
.red {
color: #f00;
}
<button id="ip-custom">Example</button>
您有一个简单的解决方案可以将状态保存在变量中。
var clicked = false;
function changeColor1() {
if(!clicked){
document.getElementById("ip-custom").className = "red";
clicked = true;
}else{
document.getElementById("ip-custom").className = "";
clicked = false;
}
}
相关文章:
- 使用ngRepeat中的Angular动态更改元素颜色
- 在模式框打开之前更改 SVG 元素的颜色,并在框打开时保持该颜色
- Extjs 树 如何更改子元素的文本颜色
- 我需要在javascript if语句中使用jquery来动画元素的颜色
- 更改不同元素的颜色
- 我怎样才能随机化 HTML 元素的颜色属性
- 在自定义坐标处获取RaphaelJS元素的颜色填充
- 边距和输入元素边框之间的填充颜色
- 更改整个页面上不同元素的颜色
- 使元素单独更改颜色
- 单击时更改元素的颜色
- 使用单选按钮更改 HTML 元素的颜色
- 将输入 html 元素动态关联到颜色选取器
- 更改元素父元素的背景颜色时停止在
上闪烁鼠标悬停?jQuery/JS. - 获取动态背景颜色,使用 LESS 应用于单独的元素
- 如何为 svg 元素提供 hsl 颜色值
- 如何在每次滚动时更改元素颜色
- 单击以更改元素颜色
- 动态改变元素颜色的最佳方法
- Javascript改变元素颜色/ PHP变量