Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Aplicar collapse de Bootstrap desde enlace remoto

21 de abril de 2015

Estimados colegas. El caso que tengo es el siguiente, tengo dos páginas HTML. En la primera index.html tengo al pie de la pagina el siguiente código.

<div class='col-xs-12 col-sm-4 col-md-4 col-lg-4'>
   <div id='Recursos' class='widget'>
      <div class='panel-heading label-footer'>
         <h4>Recursos</h4>
      </div>
      <div class='footer-list footer-box'>
         <ul class='resource-list'>
            <li><a href="resources.html#collapseResourceOne">Formatos</a></li>
            <li><a href="resources.html#collapseResourceTwo">Glosario</a></li>
            <li><a href="resources.html#collapseResourceThree">Herramientas</a></li>
         </ul>
      </div>
   </div>
</div>

En la segunda resources.html el siguiente codigo.

<div role="tablist" id="resources" class="panel-group" aria-multiselectable="true">
   <!-- Formatos -->
   <div class="panel panel-default">
      <div role="tab" id="ResourceOne" class="panel-heading">
         <h4 class="panel-title">
            <a href="#collapseResourceOne" data-toggle="collapse" data-parent="#resources" class="collapsed" aria-expanded="false" aria-controls="collapseResourceOne">Formatos</a>
         </h4>
      </div>
      <div role="tabpanel" id="collapseResourceOne" class="panel-collapse collapse" aria-labelledby="ResourceOne">
         ...
         ...
      </div>
   </div>
   <!-- Glosario -->
   <div class="panel panel-default">
      <div role="tab" id="ResourceTwo" class="panel-heading">
         <h4 class="panel-title">
            <a href="#collapseResourceTwo" data-toggle="collapse" data-parent="#resources" class="collapsed" aria-expanded="false" aria-controls="collapseResourceTwo">Glosario</a>
         </h4>
      </div>
      <div role="tabpanel" id="collapseResourceTwo" class="panel-collapse collapse" aria-labelledby="ResourceTwo">
         ...
         ...
      </div>
   </div>
   <!-- Herramientas -->
   <div class="panel panel-default">
      <div role="tab" id="ResourceThree" class="panel-heading">
         <h4 class="panel-title">
            <a href="#collapseResourceThree" data-toggle="collapse" data-parent="#resources" class="collapsed" aria-expanded="false" aria-controls="collapseResourceThree">Herramientas</a>
         </h4>
      </div>
      <div role="tabpanel" id="collapseResourceThree" class="panel-collapse collapse" aria-labelledby="ResourceThree">
         ...
         ...
      </div>
   </div>
</div>

Y lo que se necesita es que al seleccionar el enlace de la pagina Index.html se muestre el collapse correspondiente de la pagina resource.html

En el material leído de boostrap, se menciona la siguiente instrucción javascript $('.collapse').collapse(), pero no hallo la forma de como usarlo e implementarlo.

Agradeceré su colaboración y experiencia.


Respuestas

#1

Los enlaces de la página index.html los tienes bien, ya que sólo hay que añadir #collapse... al final del enlace. En la página resources.html es donde tienes que que activar el collapse. Para ello tienes dos opciones:

1. Activarlo a mano mediante JavaScript

Primero tienes que enlazar en la página el archivo JavaScript de Bootstrap y el de jQuery. Después tienes que añadir este código en tu página:

<script type="text/javascript">
    $(function() {
        $('#resources').collapse()
    });
</script>

2. Usar los atributos HTML

Esta forma es más sencilla y se recomienda hacerlo así. Simplemente tienes que enlazar los archivos JavaScript de Bootstrap y jQuery y después configurar bien los atributos data- de los elementos que forma el collapse. Así Bootstrap sabrá lo que tiene que mostrar u ocultar en cada momento. En tu caso ya lo tienes hecho así. Ejemplo:

<a href="#collapseResourceThree" data-toggle="collapse" data-parent="#resources" 
   class="collapsed" aria-expanded="false"
   aria-controls="collapseResourceThree">
  Herramientas
</a>

Así que sólo te faltaría enlazar los archivos de JavaScript en esa página resources.html.

@javiereguiluz

29 abril 2015, 9:21