Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Hadess_inf en 22 Noviembre 2012, 07:10 am



Título: Ubicar div debajo de texto al dar clic en este
Publicado por: Hadess_inf en 22 Noviembre 2012, 07:10 am
Hola buen día, haber si alguien me da una mano. Como tendría que hacer para que un div se ubique debajo de una etiqueta li cuando doy clic en ella.

Ejemplo:

<ul>
   <li>UNO</li>
   <li>DOS</li>
   <li>TRES</li>
</ul>

<DIV></DIV>

Al dar clic en :
- UNO se cargara un contenido en el div (pero este se debe de ubicar debajo de UNO)
- DOS se cargara un contenido en el div (pero este se debe de ubicar debajo de DOS)
- TRES se cargara un contenido en el div (pero este se debe de ubicar debajo de TRES)

La idea es que según sea el caso el div debe ponerse debajo de cada li.

Gracias desde ya.
Saludos.


Título: Re: Ubicar div debajo de texto al dar clic en este
Publicado por: Beakman en 22 Noviembre 2012, 07:47 am
Podés hacerlo con javascript (o jquery). Y creo que sería más sencillo con tres divs. Y simplemente mostrarlos al hacer click, y ocultarlos cuando se haga click en otra parte.


Título: Re: Ubicar div debajo de texto al dar clic en este
Publicado por: #!drvy en 24 Noviembre 2012, 18:41 pm
Aunque estoy de acuerdo con @Beakman, puedes usar jQuery para hacerlo fácilmente.

Ejemplo:
Código
  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3.   $('ul > li').click(function(){
  4.      // Obtenemos el LI que se ha clickeado.
  5.      var item = $(this);
  6.      // Cogemos el div con id "contenido" y lo soltamos.
  7.      var contenido = $('#contenido').detach();
  8.      //  Insertamos el div despues del LI que hemos clickeado.
  9.      contenido.insertAfter(item);
  10.   });
  11. });
  12. </script>

PD: Notese que detach(); No hace falta. Pero he leído en algunos sitios que solo con insertAfter acaba haciendo 2 copias del elemento en algunos teléfonos móviles.

Saludos