WordPress引导程序3 Walker Nav的问题

WordPress引导程序3 Walker Nav的问题,wordpress,twitter-bootstrap,navigation,Wordpress,Twitter Bootstrap,Navigation,这是有问题的导航 我正试图在我的WordPress中实现Bootstrap3NAV。我的问题是: 当导航折叠并显示“菜单”按钮以展开菜单时,该按钮似乎不起任何作用。它不会打开折叠的菜单 检查第一个链接“automated marketing”(自动营销)它有一个下拉项,该下拉项工作正常,子菜单项上的链接工作正常,但自动营销的主链接仅显示“#”链接,因此无法生成正确的链接 在哪里可以将菜单设置为以比现在更小的像素范围折叠 下面是我在my header.php中的代码,用于在菜单中提取: <

这是有问题的导航

我正试图在我的WordPress中实现Bootstrap3NAV。我的问题是:

  • 当导航折叠并显示“菜单”按钮以展开菜单时,该按钮似乎不起任何作用。它不会打开折叠的菜单
  • 检查第一个链接“automated marketing”(自动营销)它有一个下拉项,该下拉项工作正常,子菜单项上的链接工作正常,但自动营销的主链接仅显示“#”链接,因此无法生成正确的链接
  • 在哪里可以将菜单设置为以比现在更小的像素范围折叠
  • 下面是我在my header.php中的代码,用于在菜单中提取:

    <nav class="navbar navbar-default" role="navigation">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-top-collapse">
                    <span class="sr-only">Toggle navigation</span>Menu
                </button>
    
            </div>
           <div id="navbarCollapse" class="collapse navbar-collapse">
            <?php
                wp_nav_menu( array(
                    'menu'       => 'top_menu',
                    'depth'      => 2,
                    'container'  => false,
                    'menu_class' => 'nav navbar-nav',
                    'fallback_cb' => 'wp_page_menu',
                    'walker' => new wp_bootstrap_navwalker())
                );
            ?>
            </div>
        </div>
    </nav>
    
    我还使用header.php中的脚本使下拉菜单在hover上工作

     <script>
     $(function() {
    
    
    $('ul.nav li.dropdown').hover(function() {
    $('.dropdown-menu', this).fadeIn('fast');
    }, function() {
    $('.dropdown-menu', this).fadeOut('fast');
    });
    
    });
    </script>
    
    
    $(函数(){
    $('ul.nav li.dropdown')。悬停(函数(){
    $('.dropdown menu',this.fadeIn('fast');
    },函数(){
    $('.dropdown menu',this.fadeOut('fast');
    });
    });
    
    我将jquery和bootstrap.js放在我的标题中,如下所示:

    <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
    <script src="<?php $blog_title = get_bloginfo('template_directory'); ?     
    >/js/bootstrap.min.js"></script>
    
    
    
    我发现这个问题在谷歌排名很高,很惊讶还没有给出答案

    这里的问题是菜单按钮指向页面上的错误元素。它正在使用
    data target=“.navbar top-collapse”
    来定位ID
    #navbar-collapse

    修正到固定点1的代码为:

    <nav class="navbar navbar-default" role="navigation">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-top-collapse">
                    <span class="sr-only">Toggle navigation</span>Menu
                </button>
    
            </div>
            <div id="navbarCollapse" class="collapse navbar-collapse">
                <?php
                    wp_nav_menu( array(
                        'menu'       => 'top_menu',
                        'depth'      => 2,
                        'container'  => false,
                        'menu_class' => 'nav navbar-nav',
                        'fallback_cb' => 'wp_page_menu',
                        'walker' => new wp_bootstrap_navwalker())
                    );
                ?>
            </div>
        </div>
    </nav>
    
    
    切换导航菜单
    
    关于第2点:这是预期的行为。同时打开下拉菜单的可点击链接对手机不友好。-您在本主题中使用的类的制作人,做出了有意识的决定,坚持Bootstraps的移动友好特性,并确保navwalker使与儿童的项目未链接。这使得他们能够打开“触摸”事件的下拉列表,而不仅仅是悬停


    第3点:更改折叠大小涉及到对引导的核心CSS进行几十(可能数百)个CSS覆盖。手动操作是一件非常痛苦的事情。如果使用较少,则只需修改
    @grid float breakpoint
    变量即可。如果需要,您也可以通过进行此操作。

    我使用以下方法解决了此问题:

  • 添加脚本

    (function($){ $(document).ready(function(){ $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) { event.preventDefault(); event.stopPropagation(); $(this).parent().siblings().removeClass('open'); $(this).parent().toggleClass('open'); }); }); })(jQuery);
    
  • 如果wp_bootstrap_navwalker.php文件中的($args->有子项&&$depth==0)
  • ,则从此行中删除
    &$depth==0

    (function($){ $(document).ready(function(){ $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) { event.preventDefault(); event.stopPropagation(); $(this).parent().siblings().removeClass('open'); $(this).parent().toggleClass('open'); }); }); })(jQuery);