2011-08-25 89 views
2
    $(document).ready(function() { 

      $("span#label_Flat").hide(); 
      $("span#added_Flat").hide(); 
      $("span#removed_Flat").hide(); 



      if ($('#Flat:checked').val() != false) { 

       $('#Flat').click(function() { 
        $("span#label_Flat").toggle(); 
        $("span#removed_Flat").toggle(); 

       }); 

      } else { 

       $('#Flat').click(function() { 
        $("span#label_Flat").toggle(); 
        $("span#added_Flat").toggle(); 

      });     
     }); 

任何人都可以指出爲什麼這不起作用嗎?Jquery If語句 - 切換函數

我想隱藏三個跨度,只有切換其中兩個才能看到,具體取決於複選框是否被選中。

目前,span並未隱藏,因此不應該在隱藏和顯示之間切換,因爲它們應該是。

的HTML是:事先求助

<input id="Flat" type="checkbox" name="Flat" checked /> 


<p> 
<span id="label_Flat">Flat: </span> 
<span id="added_Flat">Added</span> 
<span id="removed_Flat">Removed</span> 
</p> 

感謝。

例子可以在這裏看到:http://jsfiddle.net/WEq5u/10/

+0

您可以發佈您使用的HTML。這將幫助我們更輕鬆地回答這個問題。 – adamjmarkham

+2

你忘了提到什麼是問題;比如,它做了什麼,它不應該做什麼,或者你得到了什麼錯誤,或者其他什麼。 – Pointy

+0

我澄清了一些事情,並稍微更改了代碼以使其更清晰。還添加了html。道歉,謝謝。 – Teeny

回答

1

我認爲你正在尋找這個。要查看是否選中該複選框,只需使用this.checked屬性,如果選中該屬性將返回true,否則返回false

 $(document).ready(function() { 

      $("span#label_Flat").hide(); 
      $("span#mp_Flat").hide(); 
      $("span#removed_Flat").hide(); 

      $('#Flat').click(function() { 
       if(this.checked){ 
        $("span#label_Flat").toggle(); 
        $("span#removed_Flat").toggle(); 
       } 
       else{ 
        $("span#label_Flat").toggle(); 
        $("span#mp_Flat").toggle(); 
       } 
      }).click(); 

     }); 
+0

更好的代碼,謝謝,但問題仍然存在。 – Teeny

+0

@Teeny - 現在試試我的編輯答案,我打電話給頁面加載時的點擊處理程序,它會根據複選框狀態顯示/隱藏頁面加載時的跨度。 – ShankarSangoli

+0

@ ShankarSangoli仍然有相同的問題,我似乎無法發現什麼是錯誤http://jsfiddle.net/WEq5u/8/ – Teeny

0

在這裏瞎猜,但我認爲

if ($('#Flat:checked').val() != undefined) { 

應該

if ($('#Flat:checked').val() != false) { 

檢查VAL應該返回真或假,以及不確定的只要它不是複選框就我所知。

+0

沒有解決我的問題,但有道理。我會加入它,非常感謝。 – Teeny

0

這應該工作,我已經採取ShankarSangoli的代碼和剛添加的情況下,如果頁面加載與選中複選框與否。

$(document).ready(function() { 
    $("span#label_Flat").hide(); 
    $("span#mp_Flat").hide(); 
    $("span#removed_Flat").hide(); 

    if ($('#Flat').attr('checked') == true) { 
     $("span#label_Flat").toggle(); 
     $("span#removed_Flat").toggle(); 
    } 
    else { 
     $("span#label_Flat").toggle(); 
     $("span#mp_Flat").toggle(); 
    } 
    $('#Flat').click(function() { 
     if (this.checked) { 
      $("span#label_Flat").toggle(); 
      $("span#removed_Flat").toggle(); 
     } 
     else { 
      $("span#label_Flat").toggle(); 
      $("span#mp_Flat").toggle(); 
     } 
    }); 
}); 
+0

在jsfiddle中編輯代碼,仍然沒有成功,但謝謝。 – Teeny

+0

你的html不正確。 Flob

+0

即使如此,仍然無法正常工作。 :)謝謝 – Teeny