0

我正在使用 django-cms,因为我在 ul 中显示的每个模板上输出子菜单。但是,我正在使网站具有响应性,并且我希望能够在选择下拉列表中输出内容。这是文档 - http://django-cms.readthedocs.org/en/latest/getting_started/navigation.html#show-sub-menu它提到使用自定义模板,但我并不真的需要这样做。

我想像这样输出子菜单:

<select>
<option> Home </option>

</select>

而不是..

<ul>
<li> Home </li>
</ul>

任何帮助将非常感激!

4

2 回答 2

2

正如您自己所说,文档告诉您使用自定义模板,这正是您在这种情况下应该做的。

<select>
    {% show_sub_menu 1 "option_menu.html" %}
</select>

然后在“option_menu.html”中:

{% for child in children %}
    <option>{{ child.get_menu_title }}</option>
{% endfor %}

请注意,这只会显示一级子菜单,更多,请检查{% if child.children %},如果是True,请执行您认为最适合您的情况的操作。

于 2013-08-30T09:20:42.513 回答
-1

感谢您的回复。我实际上已经设法使用一些 JS 来做到这一点。我已将<li>标签转换<option>为以下代码:

<script type="text/javascript">
            $(document).ready(function(){
                $('.subnav').each(function() {
                    $(this).find('a').each(function() {
                            var $option = $('<option />');
                            $option.attr('value', $(this).attr('href')).html($(this).html());
                            $("#mobileNav").append($option);
                    });
                });
                $("#mobileNav").change(function(){
                    window.location.href = $(this).val();
                });
            });
        </script>

我现在将尝试您的解决方案,因为它更清洁,但上面的代码将来可能对其他人有用。

再次感谢!

于 2013-08-30T11:24:26.273 回答