Bootstrap 悬停时打开下拉菜单,单击时 link 打开
Bootstrap Dropdown Active open on hover and link on click
我一直在尝试修改 django-oscar 的导航栏菜单。 http://latest.oscarcommerce.com/en-gb/
我不明白的是,菜单 'browse store' 在主页上加载页面时保持打开状态,但在单击所有其他页面时打开。我不明白为什么会这样。有没有办法让它在悬停时打开并在点击时添加 <a>
标签?
这是奥斯卡文档中相关部分的html模板 -
<div class="navbar-collapse primary-collapse collapse">
{% block nav_dropdown %}
<ul id="browse" class="nav navbar-nav">
<li class="dropdown active {% if expand_dropdown %}open{% endif %}">
<a href="#" class="dropdown-toggle" {% if not expand_dropdown %} data-toggle="dropdown"{% endif %}>
<span class="nav-line-1">Shop by</span><span class="nav-line-2"> Category</span>
<b class="caret"></b>
</a>
<ul class="dropdown-menu" data-navigation="dropdown-menu">
{% category_tree depth=2 as tree_categories %}
<li><a tabindex="-1" href="{% url 'catalogue:index' %}">{% trans "All products" %}</a></li>
{% if tree_categories %}
<li class="divider"></li>
{% for tree_category, info in tree_categories %}
{% if info.has_children %}
<li class="dropdown-submenu">
<a tabindex="-1" href="{{ tree_category.get_absolute_url }}">{{ tree_category.name }}</a>
<ul class="dropdown-menu">
{% else %}
<li><a tabindex="-1" href="{{ tree_category.get_absolute_url }}">{{ tree_category.name }}</a></li>
{% endif %}
{% for close in info.num_to_close %}
</ul></li>
{% endfor %}
{% endfor %}
{% endif %}
</ul>
</li>
{% block nav_extra %}
{% endblock %}
</ul>
{% endblock %}
</div><!-- /navbar-collapse -->
</div>
主菜单这样做的原因是因为您在 <li class="dropdown active"
上有一个 open
属性,而在其他页面上没有,我刚刚检查了该网站,那就是强制打开菜单。
关于您的问题,它的行为与其他页面不同,并且在点击时打开。这是因为您忘记在 <li class="dropdown active"
正下方的 a
标签上添加 data-toggle="dropdown"
。菜单代码应按照主页上的以下内容:
<ul id="browse" class="nav">
<li class="dropdown active">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Browse store<b class="caret"></b></a>
<ul class="dropdown-menu" data-navigation="dropdown-menu" style="width: 212px;">
<li><a tabindex="-1" href="/en-gb/catalogue/">All products</a>
</li>
<li class="divider"></li>
<li class="dropdown-submenu">
<a tabindex="-1" href="/en-gb/catalogue/category/books_1/">Books</a>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="/en-gb/catalogue/category/books/fiction_2/">Fiction</a>
</li>
<li><a tabindex="-1" href="/en-gb/catalogue/category/books/non-fiction_4/">Non-Fiction</a>
</li>
</ul>
</li>
<li class="divider"></li>
<li><a href="/en-gb/offers/">Offers</a>
</li>
</ul>
</li>
</ul>
您想在悬停时打开它,我想您可以考虑使用 JQuery 并检查菜单是否已悬停,然后像这样添加打开的 class:
$('.dropdown').hover(function(){
$('.dropdown-toggle', this).trigger('click');
});
祝你好运
我一直在尝试修改 django-oscar 的导航栏菜单。 http://latest.oscarcommerce.com/en-gb/
我不明白的是,菜单 'browse store' 在主页上加载页面时保持打开状态,但在单击所有其他页面时打开。我不明白为什么会这样。有没有办法让它在悬停时打开并在点击时添加 <a>
标签?
这是奥斯卡文档中相关部分的html模板 -
<div class="navbar-collapse primary-collapse collapse">
{% block nav_dropdown %}
<ul id="browse" class="nav navbar-nav">
<li class="dropdown active {% if expand_dropdown %}open{% endif %}">
<a href="#" class="dropdown-toggle" {% if not expand_dropdown %} data-toggle="dropdown"{% endif %}>
<span class="nav-line-1">Shop by</span><span class="nav-line-2"> Category</span>
<b class="caret"></b>
</a>
<ul class="dropdown-menu" data-navigation="dropdown-menu">
{% category_tree depth=2 as tree_categories %}
<li><a tabindex="-1" href="{% url 'catalogue:index' %}">{% trans "All products" %}</a></li>
{% if tree_categories %}
<li class="divider"></li>
{% for tree_category, info in tree_categories %}
{% if info.has_children %}
<li class="dropdown-submenu">
<a tabindex="-1" href="{{ tree_category.get_absolute_url }}">{{ tree_category.name }}</a>
<ul class="dropdown-menu">
{% else %}
<li><a tabindex="-1" href="{{ tree_category.get_absolute_url }}">{{ tree_category.name }}</a></li>
{% endif %}
{% for close in info.num_to_close %}
</ul></li>
{% endfor %}
{% endfor %}
{% endif %}
</ul>
</li>
{% block nav_extra %}
{% endblock %}
</ul>
{% endblock %}
</div><!-- /navbar-collapse -->
</div>
主菜单这样做的原因是因为您在 <li class="dropdown active"
上有一个 open
属性,而在其他页面上没有,我刚刚检查了该网站,那就是强制打开菜单。
关于您的问题,它的行为与其他页面不同,并且在点击时打开。这是因为您忘记在 <li class="dropdown active"
正下方的 a
标签上添加 data-toggle="dropdown"
。菜单代码应按照主页上的以下内容:
<ul id="browse" class="nav">
<li class="dropdown active">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Browse store<b class="caret"></b></a>
<ul class="dropdown-menu" data-navigation="dropdown-menu" style="width: 212px;">
<li><a tabindex="-1" href="/en-gb/catalogue/">All products</a>
</li>
<li class="divider"></li>
<li class="dropdown-submenu">
<a tabindex="-1" href="/en-gb/catalogue/category/books_1/">Books</a>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="/en-gb/catalogue/category/books/fiction_2/">Fiction</a>
</li>
<li><a tabindex="-1" href="/en-gb/catalogue/category/books/non-fiction_4/">Non-Fiction</a>
</li>
</ul>
</li>
<li class="divider"></li>
<li><a href="/en-gb/offers/">Offers</a>
</li>
</ul>
</li>
</ul>
您想在悬停时打开它,我想您可以考虑使用 JQuery 并检查菜单是否已悬停,然后像这样添加打开的 class:
$('.dropdown').hover(function(){
$('.dropdown-toggle', this).trigger('click');
});
祝你好运