Onclick更改背景颜色

时间:2015-01-09 21:40:17

标签: javascript jquery html

这是我的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>

你能解释一下为什么它不起作用吗?

非常感谢

http://jsfiddle.net/m73faf4g/

3 个答案:

答案 0 :(得分:5)

你也忘了在你的小提琴中包含 JQuery

Updated Fiddle

$(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');
    });
});

Alternative Fiddle

答案 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);
});

FIDDLE