2009-02-04 77 views
4

當我點擊togglediv,commentdiv必須是可見或隱藏的。下面的代碼是在Firefox中運行,但不是Internet Explorer:jQuery hide show div在Internet Explorer中不起作用

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

回答

5

我會嘗試:

$(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'); 
    }); 
}); 

編輯:在回答您的意見,這個例子完美的作品對我來說在IE7/FF3。 注意:我確實必須在使用慢速效果時顛倒語句的順序。有趣!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<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> 
+0

感謝答案。但我已經試過這段代碼,沒關係。我想使用切換(「慢」)效果。這個效果是運行firefox,但不是一個錯誤? – ferixxx 2009-02-04 23:19:18

6

有一個功能切換 jQuery的,做你想要什麼,而不必檢查可見:

$("#commentdiv").toggle("slow"); 
2

你」再缺少一個右}

嘗試

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

東西,我注意到這很有趣,我認爲這是上述由克萊圖斯談到,就是如果你將與「文本」行「秀」行的順序 - 它似乎開始工作。我對此沒有任何解釋;很高興知道幕後發生了什麼。

1
if(document.getElementById(ThisObj).style.display == 'none') 
{ 
    document.getElementById(ThisObj).style.display = 'block'; 
} 
else 
{ 
    document.getElementById(ThisObj).style.display = 'none'; 
} 

工程:)