【问题标题】:Make parent menu clickable使父菜单可点击
【发布时间】:2014-02-13 08:14:37
【问题描述】:

有没有办法让顶级菜单项可点击,同时仍然显示下拉菜单?

see website

我使用以下说明在我的 Wordpress 网站上使用 bootstrap 3:http://www.creativewebdesign.ro/en/blog/wordpress/create-a-responsive-wordpress-theme-with-bootstrap-3-header-and-footer/

header.php

        <?php
            wp_nav_menu( array(
                'menu'              => 'primary',
                'theme_location'    => 'primary',
                'depth'             => 2,
                'container'         => 'div',
                'container_class'   => 'collapse navbar-collapse navbar-ex1-collapse menu_left',
                'menu_class'        => 'nav navbar-nav menu_left_middle',
                'fallback_cb'       => 'wp_bootstrap_navwalker::fallback',
                'walker'            => new wp_bootstrap_navwalker())
            );
        ?>

        <?php
            wp_nav_menu( array(
                'menu'              => 'submenu',
                'theme_location'    => 'primary',
                'depth'             => 2,
                'container'         => 'div',
                'container_class'   => 'collapse navbar-collapse navbar-ex1-collapse menu_right',
                'menu_class'        => 'nav navbar-nav menu_right_middle',
                'fallback_cb'       => 'wp_bootstrap_navwalker::fallback',
                'walker'            => new wp_bootstrap_navwalker())
            );
        ?>

</nav>

谢谢

【问题讨论】:

  • 你能用截图详细说明一下吗?
  • 不,不可能。但有些想法,如果你使用 ajax 请求,并且 javascript cookie 可能你可以。
  • 我无法添加图片,但我提供了网站链接。右侧的菜单(艺术/建筑)等
  • 我不明白这个问题。顶层菜单已经可以点击了,它是一个a 元素..
  • 如果您将鼠标悬停在“艺术”上,则会出现一个下拉菜单,但无法点击父链接(艺术)。我希望它是可点击的。

标签: jquery html css wordpress twitter-bootstrap


【解决方案1】:

对我来说,它是这样工作的: 我假设您使用wp-bootstrap-navwalker

用你的编辑器打开 wp-bootstrap-navwalker.php 并查找大约行。 83

// If item has_children add atts to a.
if ( $args->has_children && $depth === 0 ) {
   $atts['href']        = '#';
   $atts['data-toggle'] = 'dropdown';
   $atts['class']           = 'dropdown-toggle';
} else {
   $atts['href'] = ! empty( $item->url ) ? $item->url : '';
}

把这段代码改成:

// If item has_children add atts to a.
if ( $args->has_children && $depth === 0 ) {
   $atts['href'] = ! empty( $item->url ) ? $item->url : '';
   //$atts['data-toggle']   = 'dropdown';
   $atts['class']           = 'dropdown-toggle';
} else {
   $atts['href'] = ! empty( $item->url ) ? $item->url : '';
}

注意:$att['href'] 现在已启用,$atts['data-toggle'] 已禁用,这使得父链接可点击。

现在打开你的 style.css 并添加这段代码来激活你的 WordPress 菜单的悬停功能,带有下拉菜单和可点击的父级。

.dropdown:hover .dropdown-menu {
    display: block;
}

注意: 在具有小屏幕的小型设备上,菜单的行为会略有变化。 不需要额外的 jQuery。

【讨论】:

  • 可以接受我自己的答案吗?如果是这样,请告诉我怎么做!
  • 非常感谢。帮助很大
  • 非常感谢,这太棒了
  • 这很好,它可以在 iphone 上运行,但不能在 android 上运行?出现下拉菜单,但可点击的项目链接将立即开始加载
【解决方案2】:

您可以使用 jQuery 将“禁用”类添加到该元素中。 请参见下面的示例:

<script>
     jQuery(document).ready(function() {

           jQuery('ul li > a.dropdown-toggle').addClass('disabled');
    });

</script>

【讨论】:

    【解决方案3】:

    当然 - 对于每个顶级锚点,请确保定义您的 href 并删除 data-toggle 属性。例如,而不是:

    <a title="Design" href="#" data-toggle="dropdown" class="dropdown-toggle">Design <span class="caret"></span></a>
    

    用途:

    <a title="Design" href="/design" class="dropdown-toggle">Design <span class="caret"></span></a>
    

    (或任何你想要的 href )。

    【讨论】:

    • 我已经为导航添加了 header.php 代码。我看不到上面的内容来编辑它。
    • php 没有这样做。打开开发工具并检查您希望可点击的元素。它周围有一个锚标记,href 值为“#”。锚标记的“默认操作”被阻止,但是 b/c 它应用了 data-toggle="dropdown" 属性。您必须删除该数据属性。如果您不能直接在代码中执行此操作,并且您不能通过您的 php 修改它(似乎并非如此),那么作为最后的手段,您可以使用 JS/jQuery 来定位 $('a .dropdown-toggle[data-toggle="dropdown"]')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    相关资源
    最近更新 更多