Foros del Web » Programando para Internet » Javascript »

Error "this"

Estas en el tema de Error "this" en el foro de Javascript en Foros del Web. hola! estoy haciendo un pequeño script que Oculta un div cuando le doy click a ese div , pero no me funcion de este modo ...
  #1 (permalink)  
Antiguo 19/02/2008, 15:46
 
Fecha de Ingreso: marzo-2006
Mensajes: 401
Antigüedad: 18 años, 2 meses
Puntos: 1
Error "this"

hola!

estoy haciendo un pequeño script que Oculta un div cuando le doy click a ese div , pero no me funcion

de este modo

Cita:
<div onclick="Expand(this);" id="eventos_out" style="">
solo me funciona

<div onclick="Expand('eventos_out');" id="eventos_out" style="">

mi Script


Código:
function Expand(id){
 
 var e = document.getElementById(id);
 
    if(e.style.display == 'block')
          e.style.display = 'none';
       else
          e.style.display = 'block';
    }
alguien sabe que pasa?
__________________
Importzona.com - Portal Racing
Tunerspot.net - your spot on net
  #2 (permalink)  
Antiguo 19/02/2008, 15:57
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Re: Error "this"

Pasa que en la función estás requiriendo el id del objeto como parámetro, y cuando la llamás con el evento le pasás el objeto mismo, no su id. Probá cambiando this por this.id en la llamada a la función:
Código PHP:
<div onclick="Expand(this.id);" id="eventos_out" style=""
  #3 (permalink)  
Antiguo 19/02/2008, 16:22
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 57
Re: Error "this"

O puedes usar el codigo que tenias:

<div onclick="Expand(this);" id="eventos_out" style="">

y en la funcion cambiar la linea:
var e = document.getElementById(id);

por esto:
var e = id;
  #4 (permalink)  
Antiguo 19/02/2008, 17:41
 
Fecha de Ingreso: marzo-2006
Mensajes: 401
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: Error "this"

me idea esto:

Cita:
function Expand(id){
var ci = id+'_id';
var di = id+'_info';

var a = document.getElementById(ci);
var b = document.getElementById(di);

if(a.style.display == 'block')
a.style.display = 'none';

else
a.style.display = 'block';
}
pero cuando pongo b.style.display = 'block'; abajo de la primera condicion , la funcion no funciona
__________________
Importzona.com - Portal Racing
Tunerspot.net - your spot on net

Última edición por MMCQ; 19/02/2008 a las 18:28
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 04:08.