Почему не работает js в Firefox?

191
04 марта 2019, 22:50

В остальных браузерах работает а в Mozilla Firefox нет, это скрипт для сворачивания меню при опускании вниз скроллингом.

jQuery(document).ready(function($){
  // Top navbar animation
  // ------------------------------------------------------------------------
  $(document).bind('shrink-menu-init', function(e, status) {
    var topBarHeight = $('.navbar-extra-top').outerHeight(); // getting the height of the nabar-extra-top
    scrollMark = Math.max(topBarHeight, 30); // forced minimum of 30
    style = ".menu-shrink {top : 0px !important;}";
    if ( !$('#ShrinkMenu').length ) {
      $( "<style></style>" ).attr('id','ShrinkMenu').data('scrollMark',scrollMark).appendTo( "head" ); // add custom CSS for height offset
    }
    $('#ShrinkMenu').html(style);
  });
  // navbar adjustments on scroll
  $(document).bind('shrink-menu', function(e, status){
    scrollMark = $('#ShrinkMenu').data('scrollMark');
    // when scroll hits height of navbar top, apply style changes
    if ( $(this).scrollTop() < scrollMark ) {
      $('#MainMenu').removeClass('scrolled menu-shrink');
    } else {
      $('#MainMenu').addClass('scrolled menu-shrink');
    }
  });
  // trigger shrink-menu on scroll
  $(window).resize( function(){
    $(document).trigger('shrink-menu-init');
  });
  $(window).scroll( function(){
    $(document).trigger('shrink-menu');
  });
    // Sub-navbar affix on scroll
    // ------------------------------------------------------------------------
    if ($('#SubMenu').length) {
        $('#SubMenu').affix({
            offset: {
                top: function () {
                    return $('#SubMenu').parent().offset().top - $('#navbar-main-container').outerHeight();
                },
            }
        }).css('top',$('#navbar-main-container').outerHeight());
        // Update values on window resize
        $(window).resize( function() {
            theTop = $('#SubMenu').parent().offset().top - $('#navbar-main-container').outerHeight();
            $('#SubMenu').data('bs.affix').options.offset = { top: theTop };
        });
    }
    // accordions - always have 1 panel open
    // ------------------------------------------------------------------------
    if ( $('.panel-heading').length ) {
        $('.panel-heading').on('click',function(e){
            if($(this).parents('.panel').children('.panel-collapse').hasClass('in')){
                e.preventDefault();
                e.stopPropagation();
            }
        });
    }
    // Tooltips
    // ------------------------------------------------------------------------
    $('[data-toggle="tooltip"]').tooltip({
        placement: function(tip, trigger) {
            // show above, unless no space. show bottom on affixed sub-nav
            return ( $(trigger).parents('#SubMenu.affix').length ) ? 'bottom' : 'auto top';
        }
    });
    // owl carousel
    // ------------------------------------------------------------------------
    if ( $('.featured-carousel').length ) {
        $(".featured-carousel").owlCarousel({
            items: 1,
            loop: true,
            autoplay: true,
            autoplayHoverPause: true,
            autoplayTimeout: 3800,
            autoplaySpeed: 800,
            navSpeed: 500,
            dots: false,
            nav: true,
            navText: [
                '<i class="fa fa-angle-left"></i>',
                '<i class="fa fa-angle-right"></i>'
            ]
        });
    }
    // Navbar Hover/Click Responsive Behavior
  // ------------------------------------------------------------------------
  collapseSize = 1299; // 768;
  // hover sub-menu items
  $('.navbar-nav a').click( function(e) {
    $this = $(e.target);
    href = $this.attr('href'); // Link URL
    // Check link value
    if (href === undefined || !href.length || href === '#' || href === 'javascript:;') {
      href = false;
    }
    // Link behavior
    if ($this.hasClass('dropdown-toggle')) {
      // Parent menu items
      if ($(window).width() > collapseSize) {
        if (href) {
          // large screens, follow the parent menu link when clicked
          if (e.which !== 2) {
            window.location.href = href;
          }
        }
       } else if ( $this.parent().hasClass('open') && href !== false) {
        // small screens, 1st tap opens sub-menu & 2nd tap follows link
        $(document).trigger('collapse-menus');
        window.location.href = href;
      }
    } else {
      // All other menu items, close menu on click
      $(document).trigger('collapse-menus');
    }
  });
  // Keep parent menus open on sub-menu expand
  $(document).on('show.bs.dropdown', function(obj) {
    if ($(window).width() <= collapseSize) {
      $(obj.target).parents('.show-on-hover').addClass('open');
    }
  });
  $('.navbar a:not(.dropdown-toggle)').click( function(e) {
    $this = $(e.target);
    href = $this.attr('href'); // Link URL
    // Check link value
    if (href === undefined || !href.length || href === '#' || href === 'javascript:;') {
      href = false;
    }
    // Link behavior
    if ($(window).width() > collapseSize) {
      if (href) {
        // large screens, follow the parent menu link when clicked
        if (e.which !== 2) {
          window.location.href = href;
        }
      }
     } else if ( $this.parent().hasClass('open') && href !== false) {
      // small screens, 1st tap opens sub-menu & 2nd tap follows link
      $(document).trigger('collapse-menus');
      window.location.href = href;
    }
  });
  // Close all menus
  $(document).on('collapse-menus', function () {
    $('.collapse.in').removeClass('in').children().removeClass('open');
  });
  // Hover styling helpers
  $('.navbar-nav > li.show-on-hover').hover(function() {
    if ($(window).width() > collapseSize) {
      $(this).addClass('open');
    }
  }, function() {
    if ($(window).width() > collapseSize) {
      $(this).removeClass('open');
    }
  });

    // Things we want to trigger once, forcefully, after loading the page
    // ------------------------------------------------------------------------
    // Fire the menu shrink function
    $(document).trigger('shrink-menu-init');
    $(document).trigger('shrink-menu');
});
READ ALSO
Группировка объектов в массиве

Группировка объектов в массиве

Имеется, например, несколько объектов в массиве:

167
Next и prev в меню

Next и prev в меню

Есть меню, есть кнопки управления next и prevИдея такая: при клике на пункт меню срабатывает определенное событие (например, фильтрация на клиенте)...

191
Закрытие меню по клику вне блока на vanila js

Закрытие меню по клику вне блока на vanila js

Помогите реализовать закрытие меню по клику вне блока на чистом Java Script везде примеры только на JQ, я стараюсь максимально обходиться без него

186
Асинхронность callback с return и throw

Асинхронность callback с return и throw

Подскажите пожалуйста минусы использования callback (помимо основных лапша в коде), и почему мы не можем использовать return и throw с callbackами (помимо...

180