【问题标题】:jQuery show submenu on hover and add class if submenu existsjQuery在悬停时显示子菜单并在子菜单存在时添加类
【发布时间】:2013-07-09 14:44:58
【问题描述】:

使用 jQuery,我想在菜单 li 悬停时显示子菜单,这样:当 .nav 有一个 ul.submenu 并且 .nav li 悬停时,显示 .submenu 并添加类 .arrow-down,然后用鼠标将其隐藏再次。

我的HTML如下:

        <ul class="nav">
            <li><a href="#">Home</a>
            </li>
            <li><a href="#">Facilities</a>
                <ul class="submenu">
                    <li><a href="#">Coaching</a></li>
                    <li><a href="#">Performance Tests</a></li>
                </ul>
            </li>
            <li><a href="#">Trainers</a>
                <ul class="submenu">
                    <li><a href="#">Coaching</a></li>
                    <li><a href="#">Performance Tests</a></li>
                </ul>
            </li>
            <li><a href="#">Membership</a>
                <ul class="submenu">
                    <li><a href="#">Coaching</a></li>
                    <li><a href="#">Performance Tests</a></li>
                </ul>
            </li>
            <li><a href="#">Schedule</a>
                <ul class="submenu">
                    <li><a href="#">Coaching</a></li>
                    <li><a href="#">Performance Tests</a></li>
                </ul>
            </li>
        </ul>

谢谢...

【问题讨论】:

标签: javascript jquery html


【解决方案1】:
$('ul.nav > li').hover(function () {
    if ($(this).find('ul.submenu').length > 0) {
        $(this).find('ul.submenu').show();
        $(this).addClass('arrow-down');
    }
},
function () {
    if ($(this).find('ul.submenu').length > 0) {
        $(this).find('ul.submenu').hide();
        $(this).removeClass('arrow-down');
    }
});

【讨论】:

  • 更新了这个以添加我自己的代码: //navigation $('ul.nav > li').hover(function () { if ($(this).find('ul.submenu' ).length > 0) { clearTimeout($.data(this, 'timer')); $('ul', this).stop(true, true).slideDown(200); $(this).addClass(' arrow-down'); } }, function () { if ($(this).find('ul.submenu').length > 0) { $.data(this, 'timer', setTimeout($.proxy( function() { $('ul', this).stop(true, true).slideUp(200); }, this), 200)); $(this).removeClass('arrow-down'); } } );
  • ^ 以上具有计时器和上下滑动功能。
猜你喜欢
  • 1970-01-01
  • 2017-11-11
  • 2014-11-08
  • 2018-08-17
  • 2019-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多