Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema con drag al insertar nuevo elemento

Estas en el tema de Problema con drag al insertar nuevo elemento en el foro de Frameworks JS en Foros del Web. Hola, tengo una clase .item que es la draggable. El problema esta cuando inserto un nuevo item mediante una funcion que tengo programada en javascript ...
  #1 (permalink)  
Antiguo 23/04/2012, 03:45
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 11 meses
Puntos: 9
Problema con drag al insertar nuevo elemento

Hola, tengo una clase .item que es la draggable. El problema esta cuando inserto un nuevo item mediante una funcion que tengo programada en javascript

$("#items").append('<div class=".item">Nuevo item</div>');

El problema está en que si inserto un nuevo div draggable no me deja moverlo porque se ha creado posteriormente a cargar la página.

Si yo coloco en el código de la pagina varios div con esa class me deja moverlos y si lo creo con javascript ya no me deja.

Igualmente me pasa con ajax al cargar un box desde un php no deja moverlo.
  #2 (permalink)  
Antiguo 23/04/2012, 05:16
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 9 meses
Puntos: 192
Respuesta: Problema con drag al insertar nuevo elemento

Y sin saber cómo específicamente estás creando el elemento nuevo, no puedo darte una solución concreta. Pero puedo guiarte, con este ejemplo:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  3.     <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" />
  4.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
  5.    
  6.     <style>
  7.     .draggable {
  8.         width: 150px;
  9.         height: 150px;
  10.         padding: 0.5em;
  11.         margin:5px;
  12.         cursor: pointer;
  13.         background:#EEE;
  14.         border: 1px solid #CCC;
  15.        
  16.     }
  17.     </style>
  18.    
  19.     <script type="text/javascript">
  20.         $(function(){
  21.             //Crer draggables con elementos existentes
  22.             $( ".draggable" ).draggable();
  23.            
  24.             //Crear nuevos elementos y hacerlos draggables
  25.             $('#crear').click(function(){
  26.                 //creo el elemento y lo guardo como elemento jQuery
  27.                 var $nuevo = $('<div class="draggable" class="ui-widget-content"> <p>Soy nuevo</p> </div>');
  28.                 //agregarlo al contenedor, antes del link
  29.                 $(this).before($nuevo);
  30.                 //hacerlo draggable
  31.                 $nuevo.draggable();
  32.             });
  33.         });
  34.     </script>
  35.    
  36.     <title>Test</title>
  37. </head>
  38.     <div id="demo">
  39.  
  40.         <div class="draggable" class="ui-widget-content">
  41.             <p>Drag me around</p>
  42.         </div>
  43.         <div class="draggable" class="ui-widget-content">
  44.             <p>Drag me around</p>
  45.         </div>
  46.  
  47.         <p><a href="#" id="crear">Crear otro</a></p>
  48.     </div><!-- End demo -->
  49. </body>
  50. </html>

Creo que el código es claro :P
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 23/04/2012, 09:14
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 11 meses
Puntos: 9
Respuesta: Problema con drag al insertar nuevo elemento

Muchas gracias por tu respuesta Naahuel, aunque ya conseguí solucionando simplemente añadiendo la funcion draggable despues de insertar el elemento, tal y como tu también comentaste. Gracias de todos modos, ahí te va un karma
  #4 (permalink)  
Antiguo 23/04/2012, 09:18
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 9 meses
Puntos: 192
Respuesta: Problema con drag al insertar nuevo elemento

Seguramente el problema está en que no estás esperando que AJAX complete para llamar al método .draggable() sobre los elementos. Eso que has puesto ahí se ejecuta inmediatamente al cargar la página o intentar crear el elemento.
__________________
nahueljose.com.ar

Etiquetas: jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:05.