我在 Drupal 中创建了一个菜单,其结构如下所示:
请注意,“产品”会将您带到
/products
。但是,当我单击它时,它只会打开子菜单链接:
它并没有带我去
/products
,而是不断扩展。菜单的结构是这样的:
<li class="expanded dropdown open">
<a href="/products" class="dropdown-toggle" data-toggle="dropdown" data-drupal-link-system-path="node/370" aria-expanded="true">Products <span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="first">
<a href="/product/inconcert" data-drupal-link-system-path="node/362">InConcert</a>
</li>
<li>
<a href="/product/voicempower" data-drupal-link-system-path="node/363">VoiceMPower</a>
</li>
....
</ul>
</li>
正如我想象的那样,问题是当我点击它时,会触发
<li>
,而不是内部的 <a>
。
如何解决这个问题?也许可以在悬停时打开菜单,当我单击时将我带到链接??
我终于解决了。我只需要从 Bootstrap 模板编辑
menu.html.twig
文件。我刚刚从 data-toggle
函数中删除了 setAttribute()
,如下所示:
来自:
{% set link_attributes = link_attributes.addClass('dropdown-toggle').setAttribute('data-toggle', 'dropdown') %}
致:
{% set link_attributes = link_attributes.addClass('dropdown-toggle').setAttribute('', 'dropdown') %}
这删除了下拉菜单的打开。下一步是通过悬停来打开下拉菜单。这相对容易,我只是输入了这个 CSS 代码:
li.dropdown:hover > ul.dropdown-menu {
@media (min-width: 979px) {
display: block;
}
}
我不知道这是否是最好或正确的方法,但对我来说它有效。