1

django-oscar の navbar メニューを変更しようとしています。http://latest.oscarcommerce.com/en-gb/

私が理解できないのは、「ブラウズストア」メニューがホームページのページ読み込み時に開いたままですが、他のすべてのページをクリックすると開くということです. なぜそれが起こるのか分かりません。<a>ホバー時に開き、クリック時にタグを追加する方法はありますか?

これは oscar のドキュメントの関連部分に関する 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>
4

1 に答える 1

3

ホームメニューがそうしている理由は、あなたがの属性を持っていてopen<li class="dropdown active"他のページに持っていないためです。サイトをチェックしたところ、メニューが強制的に開かれています。

他のページと同じように動作せず、クリックで開くという問題について。data-toggle="dropdown"これは、 のすぐ下のaタグに を追加するのを忘れたためです<li class="dropdown active"。メニューコードは、ホームページの次のとおりである必要があります。

<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の使用を調べて、メニューがホバーされているかどうかを確認してから、次のようなオープンクラスを追加できると思います:

$('.dropdown').hover(function(){ 
  $('.dropdown-toggle', this).trigger('click'); 
});

幸運を

于 2015-11-08T01:54:06.480 に答える