首先,如果你认为我的问题出了问题,请向我解释一下你希望我改变什么来改善它。我已经在这方面工作了几天并没有取得什么成功,而且我真的尽我所能,但我也是这个话题的新手,所以请耐心等待我。
我正在使用Bootstrap 4.0开发WooCommerce Storefront的儿童主题。
我试图使用[jQuery Smartmenus插件] (https://www.smartmenus.org/about/introduction-to-smartmenus-jquery/)和我的主菜单的小屏幕版本的Bootstrap 4插件,因为它带有我想要的切换按钮。这就是我希望它如何工作:就像他们的[" SmartMenus Bootstrap 4 Addon(Navbar)"演示] (http://vadikom.github.io/smartmenus/src/demo/bootstrap-4-navbar.html),但有一点不同:我希望父项是可点击的,这样它就会导致链接而不是切换下拉列表。 +/-按钮应该是唯一的下拉列表。
我设法使用this question的答案的一部分来获取可点击的父链接。我使用相同的nav walker,只使用Bootstrap 4版本。在该文件中,我用" $ atts [' href'] =替换了原始行206!空($ item-> url)? $ item-> url:'';"正如相关问题所示。虽然我没有改变CSS,但我并不希望在悬停时发生任何特殊情况。
我现在的问题是,在加载父链接之前,点击父链接和点击+/-结果都会在下拉列表中展开一段时间,并且我被定向到该链接。我希望父链接不进行任何切换,但更重要的是,我需要+/-按钮来切换下拉列表而不是作为父项目页面的链接。如何让它切换到下拉列表?
我尝试在walker文件的同一部分中删除data-toggle属性和下拉切换类,但这没有任何区别。
以下是header.php中我的小屏幕菜单的代码:
<div id="small-screen-menu" class="d-block d-sm-none">
<?php sk_smartmenus_init_in_footer(); ?>
<nav id="xs-site-navigation" class="navbar navbar-expand-sm" role="navigation">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#main-site-navigation" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<?php
wp_nav_menu( array(
'theme_location' => 'main_menu',
'depth' => 4,
'container' => 'div',
'container_class' => 'collapse navbar-collapse navbar-1-collapse',
'container_id' => 'main-site-navigation',
'menu_class' => 'nav navbar-nav sm sm-simple',
'fallback_cb' => 'WP_Bootstrap_Navwalker::fallback',
'walker' => new WP_Bootstrap_Navwalker(),
) );
?>
</nav>
</div>
以下是functions.php中的相应函数:
if ( ! function_exists( 'sk_smartmenus_init_in_footer' ) ) {
add_action('wp_enqueue_scripts', 'sk_smartmenus_init_in_footer');
function sk_smartmenus_init_in_footer() {
add_action( 'print_footer_scripts', 'smartmenus_init' );
}
}
function smartmenus_init() {
?>
<script type="text/javascript">
$(function() {
$('#menu-categories-menu').smartmenus();
});
</script>
<?php
}
我真的不确定这些功能是否正确。我是否需要更改walker文件的更多内容?还是Smartmenus JS?如果是这样,什么?我无法弄明白。任何帮助将不胜感激!
PS:如果你有一个没有Smartmenus插件的解决方案来创建一个带有切换按钮的可点击菜单项,我就会接受它!我并不真正依恋Smartmenus。
2018年12月更新:我仍然没有想到这一点。谁能帮我?请?