Foros del Web » Programando para Internet » Javascript »

Problema con concatenacion

Estas en el tema de Problema con concatenacion en el foro de Javascript en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function off_pop ( padre , hijo ) {     var padre = document. getElementById ( padre ) ...
  #1 (permalink)  
Antiguo 15/12/2010, 12:58
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Problema con concatenacion

Código Javascript:
Ver original
  1. function off_pop(padre,hijo){
  2.     var padre = document.getElementById(padre);
  3.     var hijo = document.getElementById(hijo);
  4.     setTimeout("$(padre).hide('slow')",700);
  5.     $(hijo).slideUp("slow");
  6. }

Tengo un problema y es que la funcion jquery del hijo me la hace pero la que esta dentro del settimeout no, debe ser por un problema de concatenacion, me podriais hechar una mano?

gracias
  #2 (permalink)  
Antiguo 15/12/2010, 14:54
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Respuesta: Problema con concatenacion

Intenta hacer lo siguiente:

Código Javascript:
Ver original
  1. function off_pop(padre,hijo){
  2.     var padre = document.getElementById(padre);
  3.     var hijo = document.getElementById(hijo);
  4.     setTimeout(function(){
  5.         $(padre).hide('slow')
  6.     },700);
  7.     $(hijo).slideUp("slow");
  8. }

No deberías usar string's dentro de la función setTimeout ;)

Saludos
  #3 (permalink)  
Antiguo 15/12/2010, 14:55
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con concatenacion

funciona¡¡ nose porque deberia ser

gracias
  #4 (permalink)  
Antiguo 15/12/2010, 20:30
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problema con concatenacion

Cita:
Iniciado por 50l3r Ver Mensaje
funciona¡¡ nose porque deberia ser

gracias
buenas...

lo que sucede que setTimeout admite dos tipos de datos: string y funcion. cuando se le pasa un string, javascript tiene que evaluarlo como si fuera codigo javascript. o sea, este es como un eval pero con lapso de tiempo. entonces, al evaluarse el codigo es interpretado en el contexto de ambito (scope) global. al codigo evaluado tener referencia a variables locales, el interprete busca las variables en el ambito global y al no encontrarla devuelve error. en cambio, si le pasas una funcion literal donde utilizas esas variables locales, el interprete crea un closure de modo que ya sabe que dicha variable pertenece a un ambito distinto. javascript closure.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 15/12/2010 a las 20:38

Etiquetas: Ninguno
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 15:08.