Javascript 隐藏兄弟姐妹

Javascript 隐藏兄弟姐妹,javascript,jquery,siblings,Javascript,Jquery,Siblings,。。。几乎有效,只有一个问题,如何隐藏subnav兄弟姐妹?如果我做了$('ul.child',这个).slideDown().sides().hide()它隐藏整个父元素。在显示要打开的元素之前,只需隐藏所有元素即可 $('#navigation li.parent').mouseover(function () { $('#news-ticker').hide(); $('ul.child', this).slideDown(); }); $('#navigation .ch

。。。几乎有效,只有一个问题,如何隐藏subnav兄弟姐妹?如果我做了
$('ul.child',这个).slideDown().sides().hide()它隐藏整个父元素。

在显示要打开的元素之前,只需隐藏所有元素即可

$('#navigation li.parent').mouseover(function () {
    $('#news-ticker').hide();
    $('ul.child', this).slideDown();
});
$('#navigation .child').mouseleave(function () {
    setTimeout(function(){
        $(this).hide();
        $('#news-ticker').slideDown();
    },2000);
});
尝试:


在slideDown方法中,我认为可以给它两个参数,如下所示:

$('#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();
});
第一个是interval,第二个是回调函数。完成后调用的函数。 但是对于您的代码,我建议使用
悬停
方法:

slideDown(500,function(){$(this).fadeOut(500,function(){$(this).hide();});});

很难说没有html我该怎么做。抱歉。

HTML是什么样子的?请在JSFIDLE中发布您的代码。在
mouseleave
上,子菜单不会隐藏,但会在其顶部显示newsticker
slideDown(500,function(){$(this).fadeOut(500,function(){$(this).hide();});});
$('#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();});
});