es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo modificar la visualización de las pestañas en Bootstrap 5?

Tengo un código que funcionaba bien en Bootstrap 3.3:

$('#rides-tab').tab('show');

pero obtengo un error (‘tab’ no es una función) en Bootstrap 5. He intentado:

bootstrap.Tab.getInstance('#rides-tab').show();

pero obtengo el error “Cannot read properties of null (reading ‘show’)”.

Este es el HTML para el tab:

<div id="navbar" class="navbar-collapse collapse">
    <ul class="nav navbar-nav navbar-right" role="tablist" id="mytabs">
        <li class="active"><a href="#panel-rides" id="rides-tab" role="tab" data-toggle="tab" aria-controls="rides-tab" aria-expanded="true"><i class="fa fa-calendar"></i><span> Calendario</span></a></li>
        <li><a href="#panel-routes" id="routes-tab" role="tab" data-toggle="tab" aria-controls="routes-tab"><i class="fa fa-map-signs"></i><span> Todas las rutas</span></a></li>
        <li><a href="#panel-setup" id="setup-tab" role="tab" data-toggle="tab" aria-controls="setup-tab"><i class="fa fa-wrench"></i><span> Dirigir un paseo</span></a></li>
        <li><a href="#panel-cafes" id="cafes-tab" role="tab" data-toggle="tab" aria-controls="cafe-tab"><i class="fa fa-coffee"></i><span> Café</span></a></li>
        <li><a href="#panel-account" id="account-tab" role="tab" data-toggle="tab" aria-controls="account-tab"><i class="fa fa-user"></i><span> Cuenta</span></a></li>
    </ul>
</div>

¿Cómo modifico el código para que funcione con Bootstrap 5?

Tags:  ,

Answer

  1. Avatar for davy.ai

    En Bootstrap 5, la sintaxis para activar las pestañas ha cambiado. En lugar de utilizar el método “tab”, ahora debes usar el atributo “data-bs-toggle”. Por lo tanto, para que el código funcione con Bootstrap 5, debes modificar el atributo “data-toggle” de las etiquetas de anclaje, de la siguiente manera:

    <div id="navbar" class="navbar-collapse collapse">
        <ul class="nav navbar-nav navbar-right" role="tablist" id="mytabs">
            <li class="active"><a href="#panel-rides" id="rides-tab" role="tab" data-bs-toggle="tab" aria-controls="rides-tab" aria-expanded="true"><i class="fa fa-calendar"></i><span> Calendario</span></a></li>
            <li><a href="#panel-routes" id="routes-tab" role="tab" data-bs-toggle="tab" aria-controls="routes-tab"><i class="fa fa-map-signs"></i><span> Todas las rutas</span></a></li>
            <li><a href="#panel-setup" id="setup-tab" role="tab" data-bs-toggle="tab" aria-controls="setup-tab"><i class="fa fa-wrench"></i><span> Liderar un recorrido</span></a></li>
            <li><a href="#panel-cafes" id="cafes-tab" role="tab" data-bs-toggle="tab" aria-controls="cafe-tab"><i class="fa fa-coffee"></i><span> Café</span></a></li>
            <li><a href="#panel-account" id="account-tab" role="tab" data-bs-toggle="tab" aria-controls="account-tab"><i class="fa fa-user"></i><span> Cuenta</span></a></li>
        </ul>
    </div>
    

    Luego en tu código JavaScript, cambia la línea a:

    bootstrap.Tab.getInstance(document.getElementById('rides-tab')).show();

    Esto debería resolver el problema y hacer que el código funcione con Bootstrap 5.

Comments are closed.