jQuery SlideUp在Chrome中无效
我有一个div
,跟着它是一个ul
。
我将slideDown
应用于div
,并在所有浏览器中将ul
推得很好。
然而,当我将slideUp
应用到div
,在所有的broswers中,在div
完成向上滑动之后, ul
会很好地出现,但是在Chrome中, 当 div
向上滑动时ul
会出现,然后它看起来很麻烦几秒钟直到div
消失。
你可以在这里看到一个例子:
单击此图像时会激活slideDown
和slideUp
:
它使这个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(); });