Ver Mensaje Individual
  #7 (permalink)  
Antiguo 20/12/2010, 07:20
Dany_s
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: jQuery detectar atributo de un elemento

no hace falta índices para saber dónde haces click o cómo ubicar elementos, tenés que manejarte con el elemento contenedor porque lo que querés hacer es copiar una estructura para duplicarlo y para los eventos también

Fijate que sencillo, primero me obtengo todo el html que está en #telefonos porque eso es lo que quiero duplicar, cuando hago click en clase #anadir-campo borro el id, le agrego la clase .eliminar-campo y le cambio el texto, luego agrego el html con todos los campos que seria la nueva fila al contenedor #telefonos.

Para eliminar solo me muevo desde el elemento que hicieron click hasta el elemento contenedor que le indico a closest y lo borro, en este caso es el div .clonar que seria la fila.

Código HTML:
Ver original
  1.     <head>
  2.         <title>Ejemplo</title>
  3.         <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  4.     </head>
  5.         <script type="text/javascript">
  6.             $( function (){
  7.                 fila = $('#telefonos').html();
  8.  
  9.                 $('#anadir-campo').live('click', function(e){
  10.                     $(this).removeAttr('id').addClass('eliminar-campo').text('Eliminar');
  11.                     $('#telefonos').append(fila);
  12.                 });
  13.  
  14.                 $('.eliminar-campo').live('click', function(){
  15.                     $(this).closest('.clonar').remove();
  16.                 });
  17.             });
  18.         </script>
  19.  
  20.     <body>
  21.  
  22.     <div id="telefonos">
  23.         <div class="clonar t-2">
  24.             <p class="normal">
  25.                 <label>Teléfono:
  26.                 <input name="cont-telefono1" id="cont-telefono1" class="number ignore" maxlength="9" /></label>
  27.             </p>
  28.             <p class="normal2">
  29.                 <label>Extensión:
  30.                 <input name="cont-extension1" id="cont-extension1" class="number cont-extension ignore" maxlength="4" /></label>
  31.                 <span id="anadir-campo">Añadir</span>
  32.             </p>
  33.             <hr/>
  34.         </div>
  35.     </div>
  36.  
  37.     </body>
  38. </html>

borre todos esos atributos indices que tenias y para que funcione el label sin tener que cambiar el atributo for puse el input adentro

Y podés agregarle otros campos como característica, tipo, etc y no hay que modificar nada

aca tenés otro ejemplo
http://www.forosdelweb.com/f127/jque...tro-td-869391/