Foros del Web » Programando para Internet » Javascript »

onclick en el body, que valores obtengo?

Estas en el tema de onclick en el body, que valores obtengo? en el foro de Javascript en Foros del Web. Buenas, necesito saber que valores se obtienen del onclick en el body. cuando hago click en X parte de la pantalla, como debo buscar los ...
  #1 (permalink)  
Antiguo 21/06/2008, 11:29
 
Fecha de Ingreso: junio-2008
Mensajes: 12
Antigüedad: 15 años, 10 meses
Puntos: 0
onclick en el body, que valores obtengo?

Buenas, necesito saber que valores se obtienen del onclick en el body. cuando hago click en X parte de la pantalla, como debo buscar los valores. se usa "this"? es un objeto verdad? alguien tiene un ejemplito?
  #2 (permalink)  
Antiguo 21/06/2008, 11:51
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: onclick en el body, que valores obtengo?

Eso depende de qué función asignes al evento click de algún elemento de tu página y de lo que hagas para controlar el burbujeo entre otras cosas. Te sugiero que leas esto: http://kusor.net/traducciones/brainj...vents1.es.html
  #3 (permalink)  
Antiguo 21/06/2008, 11:55
 
Fecha de Ingreso: junio-2008
Mensajes: 12
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: onclick en el body, que valores obtengo?

eso mismo, ahora leo. el burbujeo es lo que necesito saber, no recordaba el nombre del tema.

yo quiero saber cuando se hace click en una celda y su color de fondo.
  #4 (permalink)  
Antiguo 21/06/2008, 11:56
Avatar de johnj  
Fecha de Ingreso: marzo-2007
Mensajes: 65
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: onclick en el body, que valores obtengo?

Cita:
Iniciado por MatiasDV Ver Mensaje
Buenas, necesito saber que valores se obtienen del onclick en el body. cuando hago click en X parte de la pantalla, como debo buscar los valores. se usa "this"? es un objeto verdad? alguien tiene un ejemplito?

Pues debes algo así:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Prueba CEventos</title>
    <script type="text/javascript">
    	
		document.onclick = function(evt){
								
								/*
									Condiciona si evt == false entonces devuelve el objeto event
									que solo es accesible en Internet Explorer sino devuelve el mismo valor del parametro
									de la función el cual es "evt"
									En los demás navegadores se envía el objeto del evento pasandolo como primer paramtro
									a la función del manejador de eventos, en este caso "onclick".
								*/
								evt = evt || event;
								
								
								//COn esto sabes a que elemento se le hizo el clic y los obtienes para obtener sus propiedades como el color de fondo.
								var elemento = evt.target || evt.srcElement
								alert(elemento.nodeName);
								
								//posición con respecto a toda la pantalla en donde se hizo clic
								alert( "X : " + evt.screenX + ", Y : "  + evt.screenY);	
								
								
								
								//posición con respecto al documento en donde se hizo clic
								//el evt.pageX es para cualquier navegador menos IE. Por eso pongo el condicional.
								alert( "X : " + ( evt.pageX || evt.clientX + document.body.scrollLeft - document.body.clientLeft ) + ", Y : "  + ( evt.pageY || evt.clientY + document.body.scrollTop - document.body.clientTop ) );	
							
							}    
    </script>
</head>
<body>
	<div style="background-color:#000000; height:100px;"></div>
</body>
</html>

Espero te sirva.

Última edición por johnj; 21/06/2008 a las 12:02
  #5 (permalink)  
Antiguo 21/06/2008, 12:48
 
Fecha de Ingreso: junio-2008
Mensajes: 12
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: onclick en el body, que valores obtengo?

porque no entiendo que haces en algunos lugares, me comentas que condiciona pero que hace esto: evt = evt || event; (que hacen las barras verticales?, es un "if" sobre "evt" si es falso?)

"evt.target" que es target? (soy novato, conozco .value [Valor] .text [texto] .id [identificador] .name [nombre])

"evt.srcElement" que srcElement?

----------------------

Bueno, pese a estas dudas, con las aclaraciones que me hiciste pude ralizar lo que queria, gracias y aqui mi codigo con el onclick en el BODY, mi problema era que usaba this y en este caso el valor asignado era cualqueira (mas bien vacio), tenia que usar event. Aun que sigo sin entender que es srcElement.

GRACIAS!!!!

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>Div 04</title>
</head>

<body onload="CreaLista();" onclick="PoblarLista (event.srcElement);" >

<div id="div04" descrip = Color de fondo style="display: block">

<table border="3" name="nTabla" id="Tabla">
<tr style="color:blue"><th colspan="5"></th>Tabla de colores</tr>
	<tr>
		<td id="Rojo" value="FF0000" text="Rojo" style="background-color:red">Rojo</td>
		<td id="Azul" value="0000FF" text="Azul" style="background-color:blue">Azul</td>
	</tr>
	<tr>
		<td id="Verde" value="009900" text="Verde" style="background-color:green">Verde</td>
		<td id="Amarillo" value="FFFF00" text="Amarillo" style="background-color:yellow">Amarillo</td>
	</tr>
</table>



<script language= "javascript">

//document.getElementById('Tabla').onclick = PoblarLista;
//document.onclick = function(evt){ evt = evt || event; PoblarLista(evt);};

function CreaLista ()
{
  oSelect = document.createElement('SELECT');
  oSelect.id = "combo";
  oSelect.name = "Colores";
  op = document.createElement("OPTION");	
  op.value = '99';
  op.value = 'FFFFFF';
  op.text = 'Seleccione un color del cuadro';
  op.selected = true;
  oSelect .options[0] = op;
  document.body.appendChild(oSelect);
  oSelect.attachEvent('onchange', function() {ColorFondo(combo);});
}

function PoblarLista (id)
{ 
  if (id.nodeName == 'TD')
  {
  	  alert ("value: " + id.value);
  	  alert ("text: " + id.text);
//	  alert ( "color: " + id.color);
	  var cont=0;
	  existe = 'NO';
	  for(var i=0; i < oSelect.length; i++)
	   {
		 if (id == combo[cont].value)
		 	{existe = 'Si';}
		 cont++;
		}
	  if (existe == 'NO')
	  {
	  op = document.createElement("OPTION");
	  op.value = id.value; 
	  op.text = id.text;
	  //op.selected = true;
	  oSelect.options[cont] = op;
	  document.body.appendChild(oSelect);
  	}
  }
}

function ColorFondo(c)
{
  document.bgColor = c.value;
}
</script> 
</div>

</body>
</html>
  #6 (permalink)  
Antiguo 21/06/2008, 12:51
 
Fecha de Ingreso: junio-2008
Mensajes: 12
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: onclick en el body, que valores obtengo?

Gracias por la pagina, muy buena.
  #7 (permalink)  
Antiguo 21/06/2008, 13:08
Avatar de johnj  
Fecha de Ingreso: marzo-2007
Mensajes: 65
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: onclick en el body, que valores obtengo?

Disculpame MatiasDV, te voy a explicare que queria decir con esas líneas:

Código:
evt = evt || event;
Esta es solo una abreviatura de :


Código:
if(typeof event != "undefined")
	evt = event;
else
       evt = evt;
En donde digo que si event (osea window.event que solo existe en IE) no existe entonces que el valor de evt quede intácto. Pero si existe evt será igual a window.event. Entonces la linea evt = evt || event en palabras castisas significa que evt es igual a evt o a event.


Esto también se aplica a la línea var elemento = evt.target || evt.srcElement en donde la propiedad target es el elemento que generó el evento en este caso el elemento en el cual se hizo clic. Esta propiedad no existe en Internet explorer, en vez de ella existe la propiedad srcElement.

Espero haberme hecho entender. Cualquier duda nos comentas.

Saludos.
  #8 (permalink)  
Antiguo 21/06/2008, 13:43
 
Fecha de Ingreso: junio-2008
Mensajes: 12
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: onclick en el body, que valores obtengo?

Perfecto. no puedo votar. es un excelente.!!!!

Esperaba alguien asi dispuesto. me ayudaste mucho, es un ejercicio que me jodio un parcial (en hoja). no sabia como era para usar el onclick global. ahora esta barbaro.

GRACIAS!!!
  #9 (permalink)  
Antiguo 21/06/2008, 20:26
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: onclick en el body, que valores obtengo?

Aqui hablamos un poquillo del operador lógico ||, para entenderlo un poco mejor:
http://www.forosdelweb.com/f13/inten...ogicos-526878/

Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 13:05.