jQuery SlideUp在Chrome中无效

我有一个div ,跟着它是一个ul

我将slideDown应用于div ,并在所有浏览器中将ul推得很好。

然而,当我将slideUp应用到div ,在所有的broswers中,在div完成向上滑动之后, ul会很好地出现,但是在Chrome中, div向上滑动时ul会出现,然后它看起来很麻烦几秒钟直到div消失。

你可以在这里看到一个例子:

单击此图像时会激活slideDownslideUp在此处输入图像描述

它使这个div出现或消失: 在此处输入图像描述

当div出现并消失时,这应该是下降和下降的ul在此处输入图像描述

这是代码。 HTML:

   

这是JavaScript:

  $(document).ready(function() { $("#whatWhere ul li span").click(function () { //if another li open- closed; if($(this).parent().siblings().children(".list").hasClass("highlight")){ // $(this).parent().siblings().children("ul").slideUp("slow"); $(this).parent().siblings().children(".list").css("display","none"); $(this).parent().siblings().removeClass("open"); $(this).parent().siblings().addClass("standBy"); $(this).parent().siblings().children(".list").toggleClass("highlight"); } //open ul of selected li area $(this).next().toggleClass("highlight"); if($(this).next().hasClass("highlight")) { //#whatWhere $(this).parent().parent().parent().addClass("open"); //li $(this).parent().addClass("open"); $(this).next().slideDown("slow"); $(this).parent().siblings().addClass("standBy"); $(this).parent().removeClass("standBy"); } else { $(this).parent().parent().parent().removeClass("open"); //li $(this).parent().removeClass("open"); $(this).next().slideUp("slow"); // $(this).next().css("display","none"); $(this).parent().siblings().removeClass("standBy"); $(this).parent().removeClass("standBy"); } }); $("#whatWhere ul li .list div.toClose").click(function () { $(this).parent().parent().parent().parent().removeClass("open"); /*div #whatWhere*/ $(this).parent().parent().removeClass("open"); /*li #what/#where*/ $(this).parent().slideUp("slow"); $(this).parent().parent().siblings().removeClass("standBy");/* the other li #what/#where*/ $(this).parent().toggleClass("highlight"); /* div .list - maybe not needed*/ }); }); 

将“height:auto”添加到id为“whatWhere”的div中,它应该可以正常工作。

这家伙似乎已经在Chrome中运行了。

你应该在显示div的回调中添加ul的显示。

 $('#yourDiv').slideUp(normal, function() { $('#yourUl').slideDown(); });