else语句不起作用我的语法在jquery上是不正确的?

时间:2012-06-11 06:10:30

标签: javascript jquery if-statement

嗨我正在使用if语句来改变单击事件上div的不透明度如果div具有0.5不透明度,那么如果它具有0不透明度它将变为0,因此它将更改为0.5我使用以下jquery代码,它会将不透明度0.5更改为0,但当我再次单击将不透明度更改为0到0.5时,它不起作用。请看一下代码

$("#one_star").click(function(){
    if($(this).css({"opacity":"0.5"}))
    {
        $(this).css({"opacity":"0"});
    }
    else if(!$(this).css({"opacity":"0.5"}))
    {
        $(this).css({"opacity":"0.5"});
    }
});

我使用的是错误的语法吗? 任何建议请

4 个答案:

答案 0 :(得分:4)

表达式$(this).css({“opacity”:“0.5”})你在if中应该返回boolean true或false ,但它不会执行其他操作。< / p>

试试这个,

if($(this).css("opacity") == "0.5")
 { 
        $(this).css({"opacity":"0"});
 }
 else 
 {
     $(this).css({"opacity":"0.5"});
 }

答案 1 :(得分:1)

您的if实际上并没有检查CSS opacity属性。

你需要这样做:

if ( $(this).css('opacity') == "0.5" ) {
   //do stuff
}

答案 2 :(得分:0)

if( $(this).css("opacity") == "0.5") ){
        $(this).css({"opacity":"0"});
} else {
        $(this).css({"opacity":"0.5"});
}

答案 3 :(得分:0)

无需检查是否不是,只需使用else子句:

$("#one_star").click(function(){
    if($(this).css("opacity") === "0.5") {
        $(this).css({"opacity":"0"});
    } else {
        $(this).css({"opacity":"0.5"});
    }
});