Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/11/2013, 03:13
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: cambiar de posicion un checkbox al ser activado

Pensando en otras formas de hacer esto, di con la siguiente: En lugar de clonar y mover el elemento a otra sección para, finalmente, eliminar el original, basta con moverlo, alterando los valores de su posición.

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang = "es">
  3.   <meta charset = "utf-8" />
  4.   <style type = "text/css">
  5.     #uno, #dos {
  6.       width: 12.5em;
  7.       height: 7em;
  8.     }
  9.    
  10.     #uno {
  11.       background: #0f0;
  12.     }
  13.    
  14.     #dos {
  15.       background: #f00;
  16.     }
  17.    
  18.     div {
  19.       display: inline-block;
  20.       width: 5em;
  21.       height: 2em;
  22.       background: yellow;
  23.       text-align: center;
  24.       margin: .5em;
  25.       position: relative;
  26.     }
  27.   </style>
  28.  
  29. </head>
  30. <body>  
  31.   <section id = "uno">
  32.     <div data-level = "1" id = "a"> 1 </div>
  33.     <div data-level = "1" id = "b"> 2 </div>
  34.     <div data-level = "1" id = "c"> 3 </div>
  35.     <div data-level = "1" id = "d"> 4 </div>
  36.   </section>
  37.      
  38.   <section id = "dos"></section>
  39.  
  40.   <script type = "text/javascript" src = "http://code.jquery.com/jquery-1.10.2.js"></script>
  41.   <script type = "text/javascript">
  42.   $("div").click(function () {
  43.     var data = this.getAttribute("data-level");
  44.    
  45.     if (data == 1) this.setAttribute("data-level", 2);
  46.     else this.setAttribute("data-level", 1);
  47.    
  48.     if (this.getAttribute("data-level") == 1)
  49.       $(this).animate({"top": "-=8em"}, 1200);
  50.     else
  51.       $(this).animate({"top": "+=8em"}, 1200);
  52.   });    
  53.   </script>
  54. </body>
  55. </html>

A cada div, le asigné el atributo personalizado data-level, el cual empieza con el valor 1, pero cada vez que le de un clic a cada div, dicho valor cambiará, si era 1, pasará a ser 2 y viceversa, con esto determinaremos si el div se mueve hacia arriba o hacia abajo.

Saludos

Última edición por Alexis88; 26/11/2013 a las 03:47