【问题标题】:Bootstrap data-toggle not working引导数据切换不起作用
【发布时间】:2016-02-19 18:50:49
【问题描述】:

首先,是的,这个问题已被问过一百万次,但没有答案能解决我的问题。

当我打开我的页面时,活动选项卡连同与之关联的表格一起显示。

当我单击另一个选项卡时,与该选项卡关联的表格会显示在我的原始表格下方。 (因此两个选项卡现在都处于活动状态并正在显示,即使当前选择的选项卡是唯一应该显示的选项卡)

不好

现在两个表都显示了。控制台中没有错误。我在 js 之前包含 jquery。我也尝试过使用 jquery 函数,尽管它不是必需的,也没有改变。

我该如何解决这个问题?

{% block body -%}

    <h1 class="text-center">Product List</h1>

        <ul class="nav nav-tabs">
            <li role="navigation" class="active">
                <a data-toggle="tab" role="tab" aria-controls="tab1" href="#tab1">Category: Food</a>
            </li>
            <li role="navigation">
                <a data-toggle="tab" role="tab" aria-controls="tab2" href="#tab2">Category: Other</a>
            </li>  
        </ul>

{% for category in categories %}

    <div class="tab-content">

        {% if category.categoryName == 'Food' %}
            <div role="tabpanel" class="tab-pane active" id="tab1" >
        {% else %}
            <div role="tabpanel" class="tab-pane" id="tab2" >
        {% endif %}           

                <table class="table table-striped table-condensed table-hover">
                        <thead>
                            <tr>
                                <th>Id</th>
                                <th>Name</th>
                                <th>Price</th>
                                <th>Quantity</th>
                                <th>Description</th>
                                <th>Actions</th>
                            </tr>
                        </thead>
                    <tbody>
                        {% for entity in category.products %}
                            <tr>
                                <td><a href="{{ path('product_show', { 'id': entity.id }) }}">{{ entity.id }}</a></td>
                                <td>{{ entity.name }}</td>
                                <td>${{ entity.price }}</td>
                                <td>{{ entity.quantity }}</td>
                                {% for description in entity.descriptions %}
                                    <td>{{ description.productDesciption }}</td>
                                {% endfor %}
                                <td>
                                    <ul class="list-inline">
                                        <li>
                                            <a href="{{ path('product_cart', { 'id': entity.id }) }}">Add Product To Cart</a>
                                        </li>
                                        <li>
                                            <p> -- </p>
                                        </li>
                                        <li>
                                            <a href="{{ path('product_show', { 'id': entity.id }) }}">Show</a>
                                        </li>
                                        <li>
                                            <p> -- </p>
                                        </li>
                                        <li>
                                            <a href="{{ path('product_edit', { 'id': entity.id }) }}">Edit</a>
                                        </li>
                                    </ul>
                                </td>
                            </tr>
                        {% endfor %}   
                    </tbody>
                </table>

            </div><!-- Ends tab2 TAB -->
            </div><!-- Ends tab1 -->

    </div><!-- Ends tab-content -->

{% endfor %}

<a class="btn btn-primary" href="{{ path('product_new') }}" role="button">Create a New Entry</a>

{% endblock %}

https://jsfiddle.net/USERALPHA32/s63LLmaq/

【问题讨论】:

  • 您是否可以提供一个 jsbin 或 jsfiddle 来证明该问题?
  • 我可以尝试,但我不能保证任何事情。我正在使用树枝。给我几个
  • 将树枝模板展平为 HTML。您不需要 twig 或 PHP 来演示这个问题,对吧?都是 HTML 和 CSS。由于我们没有您的数据,因此我们无法重新创建您的纯 HTML 来查看问题。
  • 是的,但我使用 for 循环生成内容。我试图复制,但一切正常。我认为这是由于循环,但我不知道为什么
  • 查看源代码并将其粘贴到 jsbin 或 jsfiddle 或此处。循环是无关紧要的,直到我们可以看到模板的最终输出。

标签: php twitter-bootstrap tabs twig


【解决方案1】:

你有两个标签内容,而应该只有一个。

<div class="tab-content">

只需将您的第二个标签面板移动到您的第一个标签内容 div。然后删除第二个不必要的 tab-content div。

这是JsFiddle

【讨论】:

  • 如果我将标签内容移到 for 循环之外,则会显示两个表并且功能会被破坏。我看到你的小提琴在工作,但你提供的解决方案不能用树枝来完成。我希望你知道我的意思
  • 你可以使用 style="display:none;"在标签面板上,除了第一个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-11
  • 2018-05-24
  • 1970-01-01
相关资源
最近更新 更多