Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/05/2010, 06:46
galorn
 
Fecha de Ingreso: abril-2010
Ubicación: L'Hospitalet de LLobregat
Mensajes: 43
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta problemas con seTimeout()

Hola:

Estoy intentando utilizar la funcion setTimetout() con parametros y me esta dando problemas, ya he revisado varios post con soluciones, las he intentado aplicar pero no consigo solucionarlo. El problema es que no me pasa la variable que deseo.

Código Javascript:
Ver original
  1. //funcion que printa en la web (genera codigo html) de los productos añadidos
  2. function play(){
  3.   var msg_text = document.getElementById("msg_text");
  4.  
  5.   //removing the list
  6.   if ( msg_text.hasChildNodes() ){
  7.       while ( msg_text.childNodes.length >= 1 ){
  8.           msg_text.removeChild( msg_text.firstChild );      
  9.       }
  10.   }
  11.    
  12.     //volvemos a crear la lista
  13.     var ul = document.createElement("ul");
  14.    
  15.     //rellenamos la lista entera al completo
  16.     for (i; i<listaGeneral.length; i++){
  17.         setTimeout("rellenar("+ul+")",1000);
  18.             //rellenar(ul);
  19.         }
  20.     msg_text.appendChild(ul);
  21. }
  22.  
  23. function rellenar(ul){
  24.    
  25.         var li = document.createElement("li");
  26.        
  27.         if(listaGeneral[i].tipo=="message"){
  28.            
  29.             var mensajeMostrado = "<span class=message>"+listaGeneral[i].numero+": "+listaGeneral[i].nombre1+" le dice a "+listaGeneral[i].nombre2+" : "+listaGeneral[i].mensaje+"</span>";
  30.         }else{
  31.             var mensajeMostrado = "<span class=order>"+listaGeneral[i].numero+": "+listaGeneral[i].mensaje+"</span>";
  32.         }
  33.        
  34.         li.innerHTML = mensajeMostrado;
  35.    
  36.         ul.appendChild(li);
  37.        
  38. }

Si en vez de setTimeout("rellenar("+ul+")",1000); pongo rellenar(ul); si que me funciona, pero claro no me lo va rellenando poco a poco (cada segundo). he probado también de poner setTimeout("rellenar("'+ul+'")",1000); y todo tipo de posiblidades, comillas simples todo, comillas simples donde estan las dobles y al reves... pero no me sale.

Muchas gracias por la ayuda, un saludo!!!!!!!!!!