切换不适用于IE 6

时间:2012-06-09 16:58:13

标签: jquery html internet-explorer-6

我有这个代码在IE 8和firefox上正常工作

 <script type="text/javascript">
 function toggleDiv(divId) {
    $("#"+divId).toggle(); 
}
 </script>

 </head>

 <body>


 <br />
 <br />

 <a href="javascript:toggleDiv('myContent');">>> press 2 xxexamplexx</a>
 <div id="myContent" class='hidden'>
 <ul>


 <a href="javascript:toggleDiv('myContent1');"><div><li>xxexamplexx </li></div></a>
 <div id="myContent1" class='hidden'>

 <a href="javascript:toggleDiv('myContent2');">
 <li style="margin-left:7em;">xxexamplexx</li></a>
 <div id="myContent2" class='hidden'>
 <a href="javascript:toggleDiv('myContent3');">
 <li style="margin-left:10em;">xxexamplexx</li></a>
 <div id="myContent3" class='hidden'>
 <a href="javascript:toggleDiv('myContent4');">
 <li style="margin-left:11em;">xxexamplexx</li></a>
 <div id="myContent4" class='hidden'>
 <a href="javascript:toggleDiv('myContent5');">
 <li style="margin-left:14em;">xxexamplexx</li></a>
 <div id="myContent5" class='hidden'>
 <li style="margin-left:16em;"><b>xxexamplexx.</b></li>
 </div>

 </div>

 <a href="javascript:toggleDiv('myContent6');">
 <li style="margin-left:11em;">xxexamplexx</li></a>
 <div id="myContent6" class='hidden'>
 <li style="margin-left:14em;"><b>xxexamplexx</b></li>
 </div>

 </div>

 <div class="space"></div>
 </div><!--content2-->
 </div>

当我在IE 6上测试时,一半的切换不起作用,默认显示,当我第一次加载页面时,它们会显示出来。

任何想法如何解决这个问题?

它既不适用于IE 7。

3 个答案:

答案 0 :(得分:0)

你的代码很乱。你应该这样建立:

<ul>
  <li>
    <a>link</a>
    <ul>
      <li>
        no-link
      </li>
      <li>
        <a>link</a>
        <ul>
          ...
        </ul>
      </li>
  </li>
  <li>
    <a>link</a>
    <ul>
      ...
    </ul>
  </li>
</ul>

然后添加id,hrefs并使用你的函数,或者更好地使用这样的函数:

$("ul a").click(function(){
  $(this).parent().children("ul").toggle();
})

答案 1 :(得分:0)

当页面加载id为myContent

的ID时,这将首次显示所有div
$(document).ready(function(e){
    $('div[id^="myContent"]').toggleClass('hidden');
});

答案 2 :(得分:0)

我建议您通过the W3C Validator运行代码。这将告诉您有关的HTML错误。

例如,您在<a>中有一个<ul>标记,但在<li>中却没有。这是无效的。

在某些浏览器中页面可能会呈现正常,但是如果出现这样的HTML错误,您可能会发现它在某些地方存在问题。首先解决这些问题。