0

I am using Bootstrap navbar for the menu, I have added dropdown submenu i.e menu under the submenu, I want to open submenu on hover as it was on click, I used some method but none of it work properly, my code as follows:

<nav class="navbar navbar-default navbar-static-top">
<div class="container">
    <div class="navbar-header">
        <!-- Collapsed Hamburger -->
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse">
            <span class="sr-only">Toggle Navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>

        <!-- Branding Image -->
        <div class="logo-container">
            <a class="navbar-brand" href="{{ url('/home') }}">
                {{-- {{ config('app.name', 'Laravel') }} --}}
                <img src="{{URL::asset('/')}}Images/group_65.jpg" class="img-responsive logo-images imgcenter">
            </a>
        </div>                    
    </div>

    <div class="collapse navbar-collapse" id="app-navbar-collapse" style="margin-left: 150px">
        <!-- Left Side Of Navbar -->
        <ul class="nav navbar-nav main-menu">
            <li class="dropdown">
                <a class="dropdown-toggle" data-toggle="dropdown" href="#">My Classes<span class="caret"></span></a>
                <ul class="dropdown-menu">
                    <li><a href="#">Change Class</a></li>
                    <li><a href="#">Groups</a></li>
                </ul>
            </li>
            <li><a href="">Roster</a></li>
            <li class="dropdown">
                <a class="dropdown-toggle" data-toggle="dropdown" href="#">Admin<span class="caret"></span></a>
                <ul class="dropdown-menu">                       
                    <li class="dropdown-submenu">
                        <a class="" href="#">Manage Users</a>
                        <ul class="dropdown-menu">
                            <li><a href="#">All Users</a></li>
                            <li><a href="#">Admin</a></li>
                        </ul>
                    </li>
                    <li><a href="#">Programs</a></li>
                    <li><a href="#">Documents</a></li>
                    <li class="dropdown-submenu">
                        <a class="" href="#">Gallery</a>
                        <ul class="dropdown-menu">
                            <li><a href="#">Calendar</a></li>
                            <li><a href="#">Events</a></li>
                            <li><a href="#">Holidays</a></li>
                        </ul>
                    </li>
                    <li><a href="#">Staff Attendance</a></li>
                    <li><a href="#">Payroll</a></li>
                    <li><a href="#">Gallery</a></li>
                    <li><a href="#">Food</a></li>

                </ul>
                <li><a href="">SoCo Help</a></li>
            </li>
        </ul>

        <!-- Right Side Of Navbar -->
        <ul class="nav navbar-nav navbar-right">
            <!-- Authentication Links -->
            @if (Auth::guest())
                <li><a href="{{ route('login') }}">Login</a></li>
                <li><a href="{{ route('register') }}">Register</a></li>
            @else

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
                       {{--  {{ Auth::user()->username }} <span class="caret"></span> --}}
                       <img class="avtar" src="uploads/profile/{{Auth::user()->user_profile_pic}}" style="height: 19px;">
                        {{ Auth::user()->first_name}} {{Auth::user()->last_name }}<span class="caret"></span>
                    </a>

                    <ul class="dropdown-menu" role="menu">
                        <li>
                            <a href="{{ route('logout') }}"
                                onclick="event.preventDefault();
                                         document.getElementById('logout-form').submit();">
                                {{-- <i class="fa fa-fw fa-sign-out"> Logout</i> --}}
                                <i class="glyphicon glyphicon-log-out"></i> Logout
                            </a>

                            <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
                                {{ csrf_field() }}
                            </form>
                        </li>
                    </ul>
                </li>
            @endif
        </ul>
    </div>
</div>

I have added script for drop-down submenu as

$('.dropdown-submenu a').on("click", function(e){                    
                    $(this).next('ul').toggle();
                    e.stopPropagation();
                    e.preventDefault();                    
            });

So what is the proper way to accomplish this? It should work for collapse too.

WebDevBooster
  • 14,674
  • 9
  • 66
  • 70
Vishal B
  • 653
  • 2
  • 12
  • 31
  • 1
    https://stackoverflow.com/questions/8878033/how-to-make-twitter-bootstrap-menu-dropdown-on-hover-rather-than-click – tech2017 Jul 27 '17 at 12:55
  • Possible duplicate of [How to make twitter bootstrap menu dropdown on hover rather than click](https://stackoverflow.com/questions/8878033/how-to-make-twitter-bootstrap-menu-dropdown-on-hover-rather-than-click) – Yamen Nassif Jul 27 '17 at 13:01

1 Answers1

2

You can use jQuery for it. On hovering the <li>, find the .dropdown-menu which is sub-menu list and make it fadeIn and fadeOut.

$('ul.nav li.dropdown').hover(function() {
  $(this).find('.dropdown-menu').fadeIn(500);
}, 
function() {
  $(this).find('.dropdown-menu').fadeOut(500);
});
Mudassar Saleem
  • 123
  • 1
  • 9