views:

11317

answers:

5

firstly i'm sorry for my bad english. i guess my qestion is simple, but i didnt solve it.

when i clicked togglediv, commentdiv must be visible or hidden. this code is runing on firefox, but not i.e ()

  $(document).ready(function(){
                 $("#togglediv").click(function(){ 
                    if($("#commentdiv").is(":visible")){
                    $("#commentdiv").hide("slow"); $("#togglediv").text("show");}
                    else{
                    $("#commentdiv").show("slow"); $("#togglediv").text("hide");}
                    }
            });
+2  A: 

There is a function toggle in jquery that does exactly what you want without having to check for visibility:

$("#commentdiv").toggle("slow");
jeroen
+1  A: 

You're missing a closing }

Try

  $(document).ready(function(){
             $("#togglediv").click(function(){
                if($("#commentdiv").is(":visible")){
                $("#commentdiv").hide("slow"); $("#togglediv").text("show");
                }
                else{
                $("#commentdiv").show("slow"); $("#togglediv").text("hide");
                }
            }
        });
Steerpike
+4  A: 

I would try:

$(document).ready(function() {
  $("#togglediv").click(function() {
    // note: do this first because the :hidden test fails if you
    // do it after triggering a slow animation
    $("#togglediv").text($("#commentdiv").is(":hidden") ? "Hide" : "Sgiw");
    $("#commentdiv").toggle('slow');
  });
});

Edit: In response to your comment, this example works perfectly for me in IE7/FF3. Note: I did have to reverse the order of statements when using slow effects. Interesting!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
<html>
<head>
  <title>Test</title>
  <style type="text/css">
    #togglediv { padding: 5px; background-color: yellow; }
    #commentdiv { padding: 5px; background-color: #CCC; height: 100px; }
  </style>
</head>
<body>
  <div id="togglediv">Hide</div>
  <div id="commentdiv">thanks for answer. but i have tried this code, it was okay. i want to use toggle("slow") effect. this effect is runing firefox, but not i.e. is it a bug?</div>
  <script type="text/javascript" src="jquery-1.3.1.js"></script>
  <script type="text/javascript">
  $(function() {
    $("#togglediv").click(function() {
      $("#togglediv").text($("#commentdiv").is(":hidden") ? "Hide" : "Show");
      $("#commentdiv").toggle('slow');
    });
  });
  </script>
</body>
</html>
cletus
thanks for answer. but i have tried this code, it was okay. i want to use toggle("slow") effect. this effect is runing firefox, but not i.e. is it a bug?
ferixxx
A: 

i like it but i could not found solution of my problem hear.my problem is that jquery of my website does not work proper on IE.

A: 

Something I noticed that was interesting, and I think it was touched on above by cletus, is that if you switch the order of the "show" line with the "text" line - it seems to start working. I have no explanation for this; it would be nice to know what is going on behind the scenes.

partkyle