Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/02/2013, 15:54
Ciel
 
Fecha de Ingreso: julio-2010
Mensajes: 126
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: No funciona correctamente el next()

1ero. Ahora que lo preguntas no estoy seguro, supongo que el textarea se usa mas para cuando se le puede ingresar contenido mas grande? O me equivoco? Aun asi uso un plugin para que se expanda el textarea para abajo al ir rellenando con texto el mismo, pero en fin...

2do. No uso directamente append() porque yo solamente te mostre el div "pro", pero tengo otro div con los mismos elementos dentro... entonces mi idea es hacerlo dinamicamente que al mandarle enter se cree un item <li> dentro del <ul> siguiente, se entiende?

3ro. Te paso el codigo:

Código Javascript:
Ver original
  1. $('textarea').keydown(function(event) {
  2.         if(event.keyCode == 9) {
  3.             if($(this).attr('id') == 'con') {
  4.                 $('#pro').focus();
  5.                 event.preventDefault();
  6.             }
  7.         }
  8.         if(event.keyCode == 13) {
  9.             if (!$.trim($(this).val())) {
  10.                 $(this).val("");
  11.                 return false;
  12.             }
  13.             var value = $(this).val();
  14.             var item = "<li class='item'>" + value + "</li>";
  15.             $(this).next('ul').append($(item).delay(1).animate({left: 0, opacity: 1}, 400));
  16.             $(this).val("");
  17.            
  18.             var type = $(this).attr('id');
  19.             listitems[type].push(value);
  20.            
  21.             if(created == 0) {
  22.                 $('#create-list').slideDown(300);
  23.             }
  24.            
  25.             created++;
  26.             event.preventDefault();
  27.             return false;
  28.         }
  29.     });

Pero en fin, eso anda perfectamente.... el unico problema es el next() que no me saltea los elementos, por mas que le asigne un elemento como "ul". Es mas, antes me andaba... debe ser alguna boludez que cambie y esta afectando de alguna forma, pero no puedo entender que es.

EDIT: Si hago esto si funciona:

Código Javascript:
Ver original
  1. $(this).next().next('ul').append($(item).delay(1).animate({left: 0, opacity: 1}, 400));

Pero realmente no tiene sentido... como puede ser que no me saltee un div?