Foros del Web » Programando para Internet » Javascript »

Como pasar parametros a una función?

Estas en el tema de Como pasar parametros a una función? en el foro de Javascript en Foros del Web. Hola, tengo este Script Código PHP: < script type = "text/javascript" > /*<![CDATA[*/      function  jojo (){          alert ( 1 );         } document . onkeydown ...
  #1 (permalink)  
Antiguo 12/07/2007, 18:38
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Como pasar parametros a una función?

Hola,

tengo este Script
Código PHP:
<script type="text/javascript">/*<![CDATA[*/
    
function jojo(){
        
alert(1);
        }
document.onkeydown=jojo;
/*]]>*/</script> 
Que trabaja de maravilla.

Pero al intentar pasar un parametro no funciona:
Código PHP:
<script type="text/javascript">/*<![CDATA[*/
    
function jojo(v){
        
alert(v);
        }
document.onkeydown=jojo(3);
/*]]>*/</script> 
Cómo puedo pasar parametros a la función ?

Quisiera NO TENER QUE UTILIZAR MÁS FUNCIONES! (Es posible ?)

Gracias.
  #2 (permalink)  
Antiguo 12/07/2007, 18:49
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Re: Como pasar parametros a una función?

Hola Anarko.

A mi me funciona tu código tal como lo tienes.

Saludos.
  #3 (permalink)  
Antiguo 12/07/2007, 19:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Como pasar parametros a una función?

Hola:

Cuando haces asignaciones a los eventos debes hacerlos sin parámetros, pero usando la palabra function se los puedes asignar...

function jojo(v){
alert(v);
}
document.onkeydown= function(x) {jojo(x);};

Pruébalo y nos cuentas...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 12/07/2007, 19:05
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Como pasar parametros a una función?

Gracias, pero...

Lo probaste en IE, FF ?

A mi no me funciona ni en IE ni en FF.

Podrias crear una liga ?

(El Code en cuestion es el 2?)
  #5 (permalink)  
Antiguo 12/07/2007, 19:11
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Como pasar parametros a una función?

Maestro Caricatos ha funcionado perfectamente.

Ahora va muy bien:
Código PHP:
<script type="text/javascript">/*<![CDATA[*/
function jojo(v){
alert(v);
}
document.onkeydown= function(x) {jojo('x');};
/*]]>*/</script> 
PD: no logro imaginar cómo ha hecho el maestro Kaopectate para que le funcione...
  #6 (permalink)  
Antiguo 12/07/2007, 19:13
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Como pasar parametros a una función?

Hola:

Si le pones el dato en la función si que va:

document.onkeydown = function(x) {jojo(3);};

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 12/07/2007, 19:21
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Como pasar parametros a una función?

Cita:
Iniciado por Anarko Ver Mensaje
PD: no logro imaginar cómo ha hecho el maestro Kaopectate para que le funcione...
¡Ja, ja!... al poner los eventos de esta forma, cuando es el "load" se ejecuta directamente... prestándose a confusión... y creo que es lo que le ha pasado al amigo kao (también me suele ocurrir)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 12/07/2007, 20:35
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Como pasar parametros a una función?

Hola,

necesito pasar 2 parametros y no se como hacerlo, uno va de maravilla y ni siquiera se lo paso:
Código PHP:
<script type="text/javascript">/*<![CDATA[*/
function lv(v){alert(v);}
document.onkeydown=lv;
/*]]>*/</script> 
Pero yo necesito pasar un parametro adicional así:
Código PHP:
<script type="text/javascript">/*<![CDATA[*/
function lv(v,n){
    
alert(v+" y también "+n);
    }
document.onkeydown=function(){lvCOMO DIANTRES PASO LOS DOS PARAMETROS? );}
/*]]>*/</script> 
Pretendo pasar el EVENTO KeyBoard y una VAR, ¿cómo lo hago ?
Gracias.
  #9 (permalink)  
Antiguo 12/07/2007, 21:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Como pasar parametros a una función?

Código:
<script type="text/javascript">/*<![CDATA[*/
function lv(v,n){
    alert(v+" y también "+n);
    }
document.onkeydown=function(v){lv( v, 'otroparametro' );}
/*]]>*/</script>
  #10 (permalink)  
Antiguo 12/07/2007, 21:34
 
Fecha de Ingreso: junio-2007
Mensajes: 22
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Como pasar parametros a una función?

Lo que pasa amigo, es que tu estas queriendo utilizar un manejador de evento como si fuese una funcion cualquiera.
Recuerda que el objeto Window es un objeto predefinido, por lo tanto, el evento onkeydown, tambien es predefinido. Que quiero decir con esto ? que cuando tu asignas una funcion a este evento, la funcion se debe comportar como el evento lo requiere, no al revés. Razon por la cual no eres tu quien decide cuantos parametyros se pasaran a la funcion, sino todo lo contrario : la especificacion del evento onkeydown es quien dicat cuantos parametros debe recibir la funcion que asignes a este.
  #11 (permalink)  
Antiguo 12/07/2007, 22:03
 
Fecha de Ingreso: junio-2007
Mensajes: 22
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Como pasar parametros a una función?

Mira, hagamos una cosa, iba a postear una solucion posible, pero me pregunte : para que necesitas pasar un parametro a una funcion que se asigna al evento onkeydown ? que es lo que en realidad quieres lograr ? que es lo que necesitas ? a lo mejor existe una solucion mas sencilla a tu problema. cuentanos.
  #12 (permalink)  
Antiguo 12/07/2007, 23:24
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: Como pasar parametros a una función?

Código PHP:
<!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=iso-8859-1" />
<
title>test</title>
<
script>
function 
lv(v){
    
alert(v[0]+' y también '+v[1]+v[2]);
    }
document.onkeydown=function(){lv(['hola','chau',' y todo lo que quieras']);}
</script> 
</head>

<body>
</body>
</html> 
  #13 (permalink)  
Antiguo 13/07/2007, 08:45
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Como pasar parametros a una función?

Es 100% efectivo, el maestro Caricatos lo habia mencionado, pero si no es por GatorV no capturo la idea.

No entiendo cómo es que funciona, pero va de maravilla.

Sus ayudas han dado a mi día un gran entusiasmo.

Gracias!

(Estoy haciendo algo DOM y estoy demasiado agotado...)

Por eso vuestra ayuda es jodidsamente BIENVENIDA!!!

Quedo sin entender cómo sin pasar el parametro la función puede manejarlo:
Código PHP:
<script type="text/javascript">/*<![CDATA[*/
function lv(v){alert(v);}
document.onkeydown=lv;
/*]]>*/</script> 
Mis limitadísimos conocimientos dicen que la función espera un parametro:
Código PHP:
function lv(v){alert(v);} 
Bueno, gracias muchachos. Ahora sí puédo tomar un descanzo de unos minutos.
  #14 (permalink)  
Antiguo 13/07/2007, 08:55
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Re: Como pasar parametros a una función?

Hola de nuevo Anarko.

Pues me alegro de que hayas caido en mejores manos que las mias.

Pues si, tiene toda la razón (como es de esperarse) Caricatos. La asignación en si lo que hace es darle al handler del evento "onkeydawn" el resultado de evaluar la función. Es por eso que se ejecuta la función.

El código de mi prueba es el siguiente:

Código PHP:
<html>
 <
head>
  <
script type="text/javascript">/*<![CDATA[*/

   
function jojo(v){
    
alert(v);
   }

   
document.onkeydown=jojo(3);
/*]]>*/
  
</script>
 </head>
 <body>
 </body>
</html> 
Saludos a todos (*)






(*) Hola Caricatos!!!!
  #15 (permalink)  
Antiguo 13/07/2007, 09:03
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Como pasar parametros a una función?

Maestro Panino5001 se trata de pasar los parametros SIN PERDER la tecla...

Tal como ha indicado Caricatos en http://www.forosdelweb.com/report.php?p=2066592 y como lo "REACLARO" GatorV en http://www.forosdelweb.com/report.php?p=2066656

Agradezco la buena ayuda de alexserver, pero realmente me quedan muy para arriba sus apreciasiones...

PD:

Sorry, no se como atrapar el URL de un post en particular.
  #16 (permalink)  
Antiguo 13/07/2007, 11:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Como pasar parametros a una función?

Para capturar el post fijate en la esquina derecha superior de cada post y veras el numero, si das boton derecho -> copiar puedes copiar el enlace.

Ahora va la explicacion:

El cliente (explorador) tiene varios eventos almacenados, cuando por decir presionas una tecla automaticamente dispara el evento onkeydown, y en automatico le envia el evento de que tecla fue, esto es en automatico y es mecanismo interno del explorador.

Si tu quieres "sobrecargar" o redefinir esa funcion, el explorador espera que le pases un nombre de funcion:

Código:
document.onkeydown = mifuncion;
Entonces ahora de ejecutar el evento por default llama a mi funcion, y le pasa el evento en automatico, como tu quieres pasar otro parametro a tu funcion, tienes que usar lo que se les conoce como funciones anonimas:
Código:
document.onkeydown = function( evento_original_enviado_automatico ) {
        myfuncion( evento_original_enviado_automaticamente, 'otra variable', 'otra mas' );
}
Asi puedes pasar mas variables a un mismo evento, teniendo en cuenta que el primer evento te lo va a enviar en automatico el explorador.

Saludos y espero haya sido claro.
  #17 (permalink)  
Antiguo 13/07/2007, 23:37
 
Fecha de Ingreso: junio-2007
Mensajes: 22
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Como pasar parametros a una función?

Hola que tal, mira, vayamos por partes...

En el DOM de Javascript existen Objetos con propiedades, funciones y eventos ya definidos.
Tu estas queriendo utilizar 2 de ellos : el objeto Window, y el objeto Event.

el primero lo puedes ver cuando escribes window.onkeydown, pero el segundo no lo ves, aunque esta ahi...

la definicion correcta de la asignacion de un evento seria :

Código:
Objeto.evento = funcion (Event e) {
	//ejecutar algun codigo
	//e es un objeto y tiene propiedades y funciones
	e.funcion_01();
	var x = e.propiedad_01;
};
en este caso, para tu evento :

Código:
window.onkeydown = function (e) {
	//e es un objeto y tiene propiedades y funciones, una de ellas es la propiedad which
	var tecla = e.which;
};
Ahora, si analizas bien el codigo de Caricatos, el no esta asignandole tu funcion al evento onkeydown, sino esta asignandole una funcion construida al vuelo y en esa funcion llama a la tuya, pasandole los parametros que quieres. Eso es valido. Mira :

Código:
function tufuncion(parametro1, parametro2, parametro3) {
	//juega con tus variables
	x = parametro1 + parametro2 * parametro3;
}

window.onkeydown = function(e) {
	//ejecutar tu funcion aqui, dentro de esta funcion asignada al vuelo
	tufuncion(2, 3, 564);
	//x = 2 + 3 * 564
}
ahora.... tu quieres pasarle la tecla que el presiono...., facil, determina la tecla desde la funcion asignada al evento, y se la pasas como primer parametro:

Código:
function tufuncion(tecla, parametro2, parametro3) {
	//juega con tus variables
	x = parametro2 * parametro3;
	//tecla contiene la tecla apretada
	alert (z);
}

window.onkeydown = function(e) {
	//ejecutar tu funcion aqui, dentro de esta funcion asignada al vuelo
	//fijate que en lugar de pasarle un valor al primer parametro, le pasaras la propiedad which del objeto event, que contiene la tecla apretada
	tufuncion( e.which, 3, 564);
	//x = 3 * 564
	//tufuncion() hara un alert con la tecla apretada...
}

espero hayas entendido esto camarada. Hay cosas que parecen muy dificiles de entender, pero con el paso del tiempo uno comprende los conceptos, yo espero
que tu seas de los que analiza , investiga y entiende; y pronto dominaras el lenguaje...

saludos.
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 06:14.