$('#navigation li.parent').mouseover(function () {
$('#news-ticker').hide();
$('ul.child', this).slideDown();
});
$('#navigation .child').mouseleave(function () {
setTimeout(function(){
$(this).hide();
$('#news-ticker').slideDown();
},2000);
});..。几乎可以工作,只有一个问题,我如何隐藏subnav兄弟?如果我执行$('ul.child', this).slideDown().siblings().hide();,它会隐藏整个父级。
发布于 2013-03-19 18:57:48
尝试:
$('#navigation li.parent').mouseover(function () {
$('#news-ticker').hide();
$(this).parent().find("ul.child").not($('ul.child', this)).hide();
$('ul.child', this).slideDown();
});
$('#navigation .child').mouseleave(function (e) {
setTimeout(function(){
$(this).hide();
$('#news-ticker').slideDown();
},2000);
e.stopPropagation();
});发布于 2013-03-19 18:55:55
只需隐藏所有元素,然后再显示要打开的元素即可。
$('ul.child', this).hide();
$('ul.child', this).slideDown();发布于 2013-03-19 18:58:27
在slideDown方法中,我认为你可以给它两个参数,如下所示:
slideDown(500,function(){$(this).fadeOut(500,function(){$(this).hide();});});第一个是间隔,第二个是回调函数。完成后调用的函数。但是对于您的代码,我建议使用hover方法:
$('#navigation li.parent').hover(function(){
//on mouse enter
$('#news-ticker').hide();
$('.child', this).slideDown(500);
},function(){
//on mouse leave
$('#new-ticker').slideDown(500,function(){$('.child',this).hide();});
});很难说出没有html我该怎么做。抱歉的。
https://stackoverflow.com/questions/15497386
复制相似问题