Bootstrap:如何进行下拉导航父链接活动链接?

时间:2014-09-05 19:14:02

标签: wordpress twitter-bootstrap twitter-bootstrap-3 navigation

我正在WP安装上运行Bootstrap,并且从父下拉导航项中删除了url的问题。

这是代码。在 menu-item-72 中,您可以看到我们团队的href只是#而不是正确的链接。

<ul id="menu-primary" class="nav navbar-nav">
 <li id="menu-item-69" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-69"><a title="Home" href="http://mostellar.opteradev.com/">Home</a></li>
 <li id="menu-item-70" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-6 current_page_item menu-item-70 active"><a title="About Us" href="http://mostellar.opteradev.com/us/">About Us</a></li>
 <li id="menu-item-72" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-72 dropdown"><a title="Our Team" href="#" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">Our Team <span class="caret"></span></a>
  <ul role="menu" class=" dropdown-menu">
    <li id="menu-item-71" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71"><a title="Katherine M. Conwell, CPA" href="http://mostellar.opteradev.com/katherine-m-conwell/">Katherine M. Conwell, CPA</a></li>
    <li id="menu-item-73" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-73"><a title="Ann S. Bowers, CPA" href="http://mostellar.opteradev.com/our-team/ann-s-bowers/">Ann S. Bowers, CPA</a></li>
    <li id="menu-item-74" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-74"><a title="John B. Mostellar, CPA" href="http://mostellar.opteradev.com/our-team/john-b-mostellar/">John B. Mostellar, CPA</a></li>
    <li id="menu-item-75" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-75"><a title="Lewis T. Shreve, CPA" href="http://mostellar.opteradev.com/our-team/lewis-t-shreve/">Lewis T. Shreve, CPA</a></li>
 </ul>
</li>
</ul>

为了让它起作用,我们缺少什么?我已确认该项目与活动条目相关联。

7 个答案:

答案 0 :(得分:37)

默认情况下,下拉列表中的引导父项不可单击。 将此脚本添加到您的页面,现在它们将是:

<script>
jQuery(function($) {
$('.navbar .dropdown').hover(function() {
$(this).find('.dropdown-menu').first().stop(true, true).delay(250).slideDown();

}, function() {
$(this).find('.dropdown-menu').first().stop(true, true).delay(100).slideUp();

});

$('.navbar .dropdown > a').click(function(){
location.href = this.href;
});

});
</script>

此解决方案可归功于http://wpeden.com/tipsntuts/twitter-bootstrap-dropdown-on-hover-and-activating-click-event-on-parent-item/

答案 1 :(得分:30)

对我而言,它的工作方式如下:我假设您使用了wp-bootstrap-navwalker

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

// 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 [&#39; href&#39;]现已启用,$ atts [&#39;数据切换&#39;]被禁用,这使得父链接可以点击。

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

&#13;
&#13;
.dropdown:hover .dropdown-menu {
    display: block;
}
&#13;
&#13;
&#13;

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

答案 2 :(得分:9)

您可以通过删除data-toggle =“dropdown”并设置data-hover =“dropdown”来设置。

答案 3 :(得分:3)

要添加到Sohail Qureshi的解决方案中,我对文件进行了更多修改,这是将父链接转换为实际链接的方法:

在wp-bootstrap-navwalker.php中,更改这段代码:

// 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']           = ( $item->url );
        $atts['data-toggle']    = 'dropdown';
        $atts['class']          = 'dropdown-toggle disabled';
        $atts['aria-haspopup']  = 'true';
    } else {
        $atts['href'] = ! empty( $item->url ) ? $item->url : '';
    }

现在父链接可以点击,实际链接到页面!

答案 4 :(得分:2)

2018年5月这个解决方案对我有用。

转到你的class-wp-bootstrap-navwalker.php文件 - &gt;评论第185行

// $atts['href']          = '#';

并粘贴此代码。

$atts['href'] = ! empty( $item->url ) ? $item->url : '';
$atts['data-toggle']   = 'hover';

享受。

答案 5 :(得分:0)

在下面的代码中轻松使用drapdown中的可点击链接

onClick="parent.location='http://www.plus2net.com/'"

答案 6 :(得分:-1)

//哇!!!此代码正常运行。只需将其粘贴到项目的正确位置即可。     //如果item has_children将atts添加到。

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 : '';
}