导航菜单“活动”状态不起作用

时间:2019-04-11 10:25:04

标签: javascript jquery yii2 bootstrap-4

我的应用程序是基于Yii2和bootstrap 4构建的。我使用了Bootstrap 4“ TheEvent”主题(1页),并成功将其自定义到我的多页网站中,但是我在“ Active”网站上呆了好几天状态菜单。无论我单击哪个导航菜单,“菜单激活”状态都不会改变。我尝试了许多发现here的解决方案,但是都没有用。

这是我的导航菜单HTML:

        <ul class="nav-menu">
          <li class="menu-active"><a href="index">Home</a></li>
          <li><a href="about">About</a></li> 
          <li><a href="news">News</a></li>
          <li><a href="cabang">Cabang</a></li>
           <li><a href="contact">Contact</a></li>
           <?php if(Yii::$app->user->isGuest)   {  ?>
          <li><a href="login">Login</a></li>

这是我的布局文件中的JS:

<?php
$script = <<< JS
$(document).ready(function() {

    $(document).on('click', '.nav-menu a', function (e) {
        $(this).parent().addClass('menu-active').siblings().removeClass('menu-active');
    });
});

JS;
$this->registerJs($script)

?>

这是主题main.js的一部分,我发现它与“菜单激活”状态有关:

// Smooth scroll for the menu and links with .scrollto classes
  $('.nav-menu a, #mobile-nav a, .scrollto').on('click', function() {
    if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
      var target = $(this.hash);
      if (target.length) {
        var top_space = 0;

        if ($('#header').length) {
          top_space = $('#header').outerHeight();

          if( ! $('#header').hasClass('header-fixed') ) {
            top_space = top_space - 20;
          }
        }

        $('html, body').animate({
          scrollTop: target.offset().top - top_space
        }, 1500, 'easeInOutExpo');

        if ($(this).parents('.nav-menu').length) {
          $('.nav-menu .menu-active').removeClass('menu-active');
          $(this).closest('li').addClass('menu-active');
        }

        if ($('body').hasClass('mobile-nav-active')) {
          $('body').removeClass('mobile-nav-active');
          $('#mobile-nav-toggle i').toggleClass('fa-times fa-bars');
          $('#mobile-body-overly').fadeOut();
        }
        return false;
      }
    }
  });

这些是JS资产。他们中的大多数与动画有关,所以我认为这与活动菜单状态无关

'lib/easing/easing.min.js',
'lib/superfish/hoverIntent.js',
'lib/superfish/superfish.min.js',
'lib/wow/wow.min.js',
'lib/venobox/venobox.min.js',
'lib/owlcarousel/owl.carousel.min.js',
'contactform/contactform.js',
'js/main.js'

我什至删除了所有的“ main.js”文件,以查看我的代码是否可以运行,但是仍然相同。 “菜单激活”一直停留在我的“主页” /索引菜单上。

提前谢谢!

0 个答案:

没有答案