• Geek asks and answers

    Menu doesn't work well in Firefox

    I have this HTML code:

    <ul class="navigation-links">
        <li class="link-item">
            <img src="images/new-menu/menu-item_04.png" width="150" height="41" alt="" />
            <div style="display: none" class="sub-menu">
                <div class="sub-col">
                    <img src="images/new-menu/home.png" width="46" height="14" alt="" />
                    <ul>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                    </ul>
                </div>
                <div class="sub-col">
                    <img src="images/new-menu/home.png" width="46" height="14" alt="" />
                    <ul>
                         <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                    </ul>
                </div>
                <div class="sub-col">
                    <img src="images/new-menu/sataer.png" width="124" height="17" alt="" />
                    <ul>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                  </ul>
              </div>
                <div class="clear"></div>
            </div>
        </li>
        <li class="link-item">
            <img src="images/new-menu/menu-item_03.png" width="154" height="41" alt="" />
            <div style="display:none" class="sub-menu index-menu-col2">
                <div class="sub-col">
                    <img src="images/new-menu/decor.png" width="53" height="15" alt="" />
                    <ul>
                      <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                  </ul>
              </div>
                <div class="sub-col">
                    <img src="images/new-menu/acc.png" width="94" height="15" alt="" />
                    <ul>
                      <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                  </ul>
              </div>
                <div class="sub-col">
                    <img src="images/new-menu/out-decor.png" width="120" height="17" alt="" />
                    <ul>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                  </ul>
              </div>
                <div class="clear"></div>
            </div>
        </li>
        <li class="link-item">
            <img src="images/new-menu/menu-item_02.png" width="152" height="41" alt="" />
            <div style="display: none" class="sub-menu index-menu-col3">
                <div class="sub-col">
                    <img src="images/new-menu/lighting.png" width="35" height="16" alt="" />
                    <ul>
                      <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                  </ul>
              </div>
                <div class="sub-col">
                    <img src="images/new-menu/electric.png" width="106" height="19" alt="" />
                    <ul>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                        <li>item</li>
                  </ul>
              </div>
              <div class="clear"></div>
            </div>
        </li>
        <li class="link-item"><img src="images/new-menu/menu-item_01.png" width="151" height="41" alt="" /></li>
    </ul>
    

    and this javascript code:

    $(document).ready(function(e) {
    $(".link-item").hover(function(e) {
        $(this).children(".sub-menu").slideDown("slow");
    });
    $(".link-item").mouseleave(function(e) {
        $(this).children(".sub-menu").slideUp("fast");
    });
    

    When I open this page in Firefox and try one of these menus, it will act very strange. and the pointy menu will slide down and slide up constantly.

    Demo page

    +3
    javascript jquery html firefox
    Saleh May 24, '12 at 21:09
    source share
    5 answers

    It looks like you have some “empty” area right below your links, which causes the menu to go up and down. You can try moving the menu so that this empty area is not processed, which leads to the execution of the "mouseleave" function.

    +1
    MattK311 May 24, '12 at 21:13
    source share

    , hover(), mouseenter, mouseleave. : . :

    $(document).ready(function(e) {
        $(".link-item").hover(
            function(e) { $(this).children(".sub-menu").slideDown("slow"); },
            function(e) { $(this).children(".sub-menu").slideUp("fast"); }
        );
    });
    
    +1
    Rory McCrossan 24 '12 21:13

    well yes. The hover function takes two arguments, one for the mouse and the other for the mouse, but you pop the mouse out of hover. Try even more ...

    $(document).ready(function(e) {
      $(".link-item").hover(function(e) {
        $(this).children(".sub-menu").slideDown("slow");
      },
      function(e) {
        $(this).children(".sub-menu").slideUp("fast");
      })
    });
    
    0
    Rodolfo May 24, '12 at 21:11
    source share

    Try:

    $(document).ready(function(e) {
        $(".link-item").mouseover(function(e) {
            $(this).children(".sub-menu").stop().slideDown("slow");
        }).mouseleave(function(e) {
            $(this).children(".sub-menu").stop().slideUp("fast");
        });
    });
    
    0
    Blazemonger May 24, '12 at 21:13
    source share

    You need to prevent the creation of the animation queue, try something like this:

    $(document).ready(function(e) {
    $(".link-item").hover(function(e) {
        $(this).children(".sub-menu").stop().slideDown("slow");
    });
    $(".link-item").mouseleave(function(e) {
        $(this).children(".sub-menu").stop().slideUp("fast");
    });
    
    0
    Soufiane hassou May 24, '12 at 21:14
    source share

    More articles:

    • Reorder tiles within an area - javascript
    • Iterating over SQLAlchemy assembly efficiently - python
    • How to check if the enter key is pressed in a text field in java? - java
    • Javascript - получение последнего слова в строке - javascript
    • LinkedIn API - how to request the total number of connections? - rest
    • objective-c error: [UIView copyWithZone:]: unrecognized selector sent to the instance - objective-c
    • Bayesian rating tuned - php
    • Байесовский рейтинг - php
    • What does this jQuery code mean and when will it be called? - javascript
    • https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=https://fooobar.com/questions/1913285/what-causes-a-method-wrapped-via-a-metaclass-to-forget-self-when-called&usg=ALkJrhgI4hBiSC4J0HguYt1m7ecq2QlUlw

    All Articles

    Geek-Ask | 2020