2012-06-11 65 views
3

您好我正在使用if語句來更改單擊事件的div的不透明度如果div有0.5不透明度,所以它將更改爲0如果它有0不透明度,所以它將更改爲0.5我使用以下jquery代碼它會將不透明度從0.5更改爲0,但是當我再次單擊以將不透明度更改爲0時,它不起作用。請看代碼其他語句不工作是我的語法在jquery上不正確?

$("#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

表達式$(本)的.css({「不透明」:「0.5」}),您必須在是否應該返回布爾真或假但它並不那麼其他沒有執行。

試試這個,

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

所以我應該用什麼做的呢? –

+0

應該使用基於javascript良好部分的正確大括號。 – jhanifen

+0

確保在javascript中進行比較時使用三等於'==='。 – Trevor

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

if的實際上並沒有檢查CSS opacity財產。

你需要這樣做:

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

不需要檢查,如果它不是,只需使用else子句:

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