2012-06-22 133 views
1

我有以下代码:检查切换状态?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title></title> 
     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 

     <script type="text/javascript" language="javascript"> 
      $(document).ready(function() { 
       $("#widget_list").hide(); 

       $("#click_me").click(function() { 
        $(this).parents("#clipboard").find("#widget_list").toggle(); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <div id="clipboard"> 

      <div href="#" id="click_me" style="border:solid 1px black;text-align:center;cursor:pointer;"> 
       \/ 
      </div> 

      <div id="widget_list" style="border:solid 1px black;text-align:center;"> 
       some stuff here 
      </div> 

     </div> 

     some other stuff here 

    </body> 
</html> 

jsFiddle demo

而不是将文本some stuff here硬编码为#widget_list。如何将文本添加到#widget_list,当它的切换状态可见时,如何从#widget_list中删除切换状态为隐藏的文本?

+0

为什么你需要时,它是隐藏删除的文字吗? –

回答

2

演示http://jsfiddle.net/QFTsb/1/http://jsfiddle.net/QFTsb/3/

使用.is(":visible")http://api.jquery.com/visible-selector/

你可以看到你在演示中得到警报时,它是可见的或现在在切换

这将有助于

代码

$("#widget_list").hide(); 

$("#click_me").click(function() { 
    $(this).parents("#clipboard").find("#widget_list").toggle(function() { alert($(this).is(':visible'));}); 
});​ 
+0

由于某种原因,这似乎启用了动画。我该如何摆脱? – oshirowanen

+0

嗨@oshirowanen嗯动画? ':''或者你可以使用'.stop'或者如果你在jsfiddle中弹出完整的代码,我可以为你做一个完整的工作演示,欢呼 –

+0

原文是我拥有的所有代码。即使在最初的jsfiddle examaple中,如果我使用原始示例,切换也是即时的,就像它出现并消失一样。但是,只要我在切换中添加一个函数,它就会最终完成一个平滑的缓动型动画。 – oshirowanen

0

Working demo

这里只是填写一些东西,而你是隐藏在div

$("#widget_list").hide(function(){ $(this).html('some stuff here')}); 

$("#click_me").click(function() { 
    $(this).parents("#clipboard").find("#widget_list").toggle(); 
});​