你看到这个标题,肯定很不可思议是不是,ul,li还会有兼容性问题。确实,我也是第一次遇到,但是我这辈子算是记住了。
ul,li,在IE6和IE7下,li的兄弟元素不能是其他标签,例如:div等等。一般情况下是发现不了这个bug的,主要是今天用到了jquery的事件,发现在ie6,ie7下没效果,在JS代码打印又没有任何错误,因此我想问题可能出在了结构和样式上。因为是隐藏的元素,平时看样是很难发现。所以我首先检查结构,突发奇想,难道是ul里不能写div??于是从这里发现了这个bug.发现了这个bug,感觉特别有收货!!!
代码如下:
JS代码:
$(document).ready(function(){ $(".question_list>li").each(function(){ $(this).click(function(){ $(this).next(".box_hide").toggle(); $(this).siblings("li").next(".box_hide").hide(); $(this).children("a").css("color","#EC7302"); }) }) })
错误结构代码:
<ul class="question_list"> <li> <a href="void(0)">什么是CTQ?< /a> </li> <div class="box_hide"> <p class="one"> CTQ客户端软件可称为物联网世界的人与物的即时通讯软件,不仅具有目前即时通讯软件所具有的即时聊天等功能,同时与物联网相结合,增加携卡对象的位置、状态等信息的实时显示功能。CTQ客户端软件应用于电脑操作系统。 </p> </div> </ul>
正确的结构代码:
<ul class="question_list"> <li> <a href="void(0)">什么是CTQ?< /a> </li> <li class="box_hide"> <p class="one"> CTQ客户端软件可称为物联网世界的人与物的即时通讯软件,不仅具有目前即时通讯软件所具有的即时聊天等功能,同时与物联网相结合,增加携卡对象的位置、状态等信息的实时显示功能。CTQ客户端软件应用于电脑操作系统。 </p> </li> </ul>