首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐藏同级

隐藏同级
EN

Stack Overflow用户
提问于 2013-03-19 18:50:51
回答 3查看 205关注 0票数 0
代码语言:javascript
复制
$('#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();,它会隐藏整个父级。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-19 18:57:48

尝试:

代码语言:javascript
复制
$('#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();
});
票数 0
EN

Stack Overflow用户

发布于 2013-03-19 18:55:55

只需隐藏所有元素,然后再显示要打开的元素即可。

代码语言:javascript
复制
$('ul.child', this).hide();
$('ul.child', this).slideDown();
票数 0
EN

Stack Overflow用户

发布于 2013-03-19 18:58:27

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

代码语言:javascript
复制
slideDown(500,function(){$(this).fadeOut(500,function(){$(this).hide();});});

第一个是间隔,第二个是回调函数。完成后调用的函数。但是对于您的代码,我建议使用hover方法:

代码语言:javascript
复制
$('#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我该怎么做。抱歉的。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15497386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档