2011-08-25 86 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