这是我的Jquery代码:
$("#test").click(function() {
if($(this).css("background-color")=="#FFFFFF")
$(this).css("background-color","blue");
else
if($(this).css("background-color")=="blue")
$(this).css("background-color","#FFFFFF");
});
这是HTML:
<div id="test">
click me!
</div>
你能解释一下为什么它不起作用吗?
非常感谢
答案 0 :(得分:5)
你也忘了在你的小提琴中包含 JQuery
$(function(){
$('#test').click(function() {
if($(this).css('background-color') == 'rgb(255, 255, 255)')
$(this).css('background-color', 'blue');
else
if($(this).css('background-color') == 'rgb(0, 0, 255)')
$(this).css('background-color', '#FFFFFF');
});
});
替代方式,如果您愿意:
.blue {
background-color: blue !important;
}
$(function(){
$('#test').click(function() {
$(this).toggleClass('blue');
});
});
答案 1 :(得分:1)
像这样使用它:
$("#test").click(function() {
if($(this).css("background-color")=="rgb(255, 255, 255)")
$(this).css("background-color","blue");
else
if($(this).css("background-color")=="rgb(0, 0, 255)")
$(this).css("background-color","#FFFFFF");
});
原因是css()
函数返回rgb
格式化的颜色,这对您的条件无效。
答案 2 :(得分:1)
创建一个不依赖于颜色的切换功能,因为返回的样式在不同的浏览器中可能会不一致,具体取决于它们是否支持rgb / rgba / hsl等。
$("#test").on('click', function() {
var flag = $(this).data('flag');
$(this).css('background-color', flag ? '#fff' : 'blue');
$(this).data('flag', !flag);
});