+ -
当前位置:首页 → 问答吧 → jquery的show和toggle动画函数对ie下的li元素执行有错误?

jquery的show和toggle动画函数对ie下的li元素执行有错误?

时间:2009-05-27

来源:互联网

最近在学jquery,看jquery实战,学到动画那一章,使用show和hide或者toggle函数将列表中的元素隐藏/显示.可是在IE下该功能显示时li前面的那个标志就消失了,这是为什么?我换用slideDown和slideUp就正常.请各位高手给我一个解答
JS代码
$("li:has(ul)").click(
function(event)
{
if(this == event.target)
{
$(this)
.css("list-style-image",$(this).children().is(":hidden")?"url(images/minus.gif)":"url(images/plus.gif)")
.children().toggle("slow");
}
return false;
}
)
.css({"cursor":"pointer"})
.click();
$("li:not(:has(ul))").css({"cursor":"default","list-style-image":"none"});
放在页面加载函数中,
html:
<ul>
 <li>
  Item 1
  <ul>
   <li>Item 1.1</li>
   <li>Item 1.2</li>
  </ul>
 </li>
</ul>

作者: amokuk   发布时间: 2009-05-27

children().is(":hidden")
这个你判断的是所有子元素,有没有考虑到第2级的子元素不可见,而第1级可见?

此外style最好放在css里,注意下代码的缩进,这样很难看的

作者: keakon   发布时间: 2009-05-27

相关阅读 更多