Tom Rudge
Tom Rudge

Reputation: 3272

Adding a delay on bootstrap dropdown

I'm trying to find the most simplistic way of adding a delay on this bootstrap dropdown...http://www.bootply.com/64074 I have tried various methods and scripts but I cant seem to do it. I've added a css line to allow auto dropdown on mouseover.

            <!-- Top Nav -->
                    <div class="navbar hidden-phone well well-small">
                        <div class="navbar-inner header-drop-nav">

                    <!-- 1st dropdown -->
                    <ul class="nav nav-tabs">
                        <li class="dropdown">
                            <a class="dropdown-toggle" data-toggle="dropdown" href="#">Browse by Destination <b class="caret"></b></a>
                        <ul class="dropdown-menu">
                  <!--  1st Top Nav links -->
                            <li><a href="#">Action</a></li>
                            <li><a href="#">Another action</a></li>
                            <li><a href="#">Something else here</a></li>
                            <li class="divider"></li>
                            <li class="nav-header">Nav header</li>
                            <li><a href="#">Separated link</a></li>
                            <li><a href="#">One more separated link</a></li>
                        </ul>
                        </li>
                    </ul>

                    <!-- 2nd dropdown -->
                    <ul class="nav nav-tabs pull-middle">
                        <li class="dropdown">
                            <a class="dropdown-toggle" data-toggle="dropdown" href="#">Browse by Activity <b class="caret"></b></a>
                        <ul class="dropdown-menu">
                  <!-- 2nd Top Nav links -->
                        <li><a href="#">Action</a></li>
                            <li><a href="#">Another action</a></li>
                            <li><a href="#">Something else here</a></li>
                            <li class="divider"></li>
                            <li class="nav-header">Nav header</li>
                            <li><a href="#">Separated link</a></li>
                            <li><a href="#">One more separated link</a></li>
                        </ul>
                        </li>
                    </ul>

                    <!-- 3rd dropdown -->
                    <ul class="nav nav-tabs">
                        <li class="dropdown">
                            <a class="dropdown-toggle" data-toggle="dropdown" href="#">Browse by Interest <b class="caret"></b></a>
                        <ul class="dropdown-menu">
                  <!-- 3rd Top Nav links -->
                        <li><a href="#">Action</a></li>
                            <li><a href="#">Another action</a></li>
                            <li><a href="#">Something else here</a></li>
                            <li class="divider"></li>
                            <li class="nav-header">Nav header</li>
                            <li><a href="#">Separated link</a></li>
                            <li><a href="#">One more separated link</a></li>
                        </ul>
                        </li>
                    </ul>

                    <!-- 4th dropdown -->
                    <ul class="nav nav-tabs">
                        <li class="dropdown">
                            <a class="dropdown-toggle" data-toggle="dropdown" href="#">Special Offers <b class="caret"></b></a>
                        <ul class="dropdown-menu">
                  <!-- 4th Top Nav links -->
                        <li><a href="#">Action</a></li>
                            <li><a href="#">Another action</a></li>
                            <li><a href="#">Something else here</a></li>
                            <li class="divider"></li>
                            <li class="nav-header">Nav header</li>
                            <li><a href="#">Separated link</a></li>
                            <li><a href="#">One more separated link</a></li>
                        </ul>
                        </li>
                    </ul>

                    <form class="navbar-form pull-right hidden-tablet">
                        <input class="span3" type="text" placeholder="Search">
                        <button type="submit" class="btn btn-primary">GoSeeDo</button>
                    </form>

                        </div>
                    </div>

Upvotes: 7

Views: 16550

Answers (3)

marko.crni
marko.crni

Reputation: 69

If you are using submenus, need to add .first() after .find():

$('div.dropdown').hover(function() {
    $(this).find('.dropdown-menu').first().stop(true, true).delay(100).fadeIn(100);
}, function() {
    $(this).find('.dropdown-menu').first().stop(true, true).delay(200).fadeOut(300);
});

Upvotes: 1

Nick B
Nick B

Reputation: 7689

For those that come across this thread later.. check out this great plugin that is Bootstrap 3 compatible and works with nav menus, buttons, button groups etc:

https://github.com/CWSpear/bootstrap-hover-dropdown

Upvotes: 1

Tom Rudge
Tom Rudge

Reputation: 3272

This JQuery did the trick! http://www.bootply.com/64081

    jQuery('ul.nav li.dropdown').hover(function() {
              jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn();
            }, function() {
              jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut();
            });

Upvotes: 14

Related Questions