Foros del Web » Programando para Internet » Javascript »

¿Cómo utilizar un parámetro en la función...?

Estas en el tema de ¿Cómo utilizar un parámetro en la función...? en el foro de Javascript en Foros del Web. Hola, tengo las siguientes funciones para aplicarlas sobre diferentes imágenes: <script> function encender(img) { document. 'img' .src=(img + ".jpg"); }; </script> <script> function apagar(img) { ...
  #1 (permalink)  
Antiguo 07/06/2004, 11:47
Avatar de ludovico2000  
Fecha de Ingreso: noviembre-2003
Ubicación: Bizkaia
Mensajes: 1.315
Antigüedad: 21 años
Puntos: 2
¿Cómo utilizar un parámetro en la función...?

Hola, tengo las siguientes funciones para aplicarlas sobre diferentes imágenes:

<script>
function encender(img) {
document.'img'.src=(img + ".jpg");
};
</script>

<script>
function apagar(img) {
document.'img'.src=(img + "off.jpg");
};
</script>

Mi problema está en la parte en rojo: no logro que tome el valor de "img" para que la función se aplique a la imagen correspondiente (la llamada se hace a través de onmouseover y onmouseout en la fila (<tr>).

-COMPARTIENDO, MEJORAMOS TODOS-
  #2 (permalink)  
Antiguo 07/06/2004, 11:54
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola, ludovico2000.

Te sobran las comillas:

document.img.src=(img + ".jpg");

Si sigue sin funcionarte intenta usar una variable que no coincida con una etiqueta HTML.

Saludos,
  #3 (permalink)  
Antiguo 07/06/2004, 12:25
 
Fecha de Ingreso: junio-2004
Mensajes: 621
Antigüedad: 20 años, 5 meses
Puntos: 25
Como crear un rollOver paso a paso

Hola,

en la siguiente URL tienes un artículo muy didáctico:
"Como crear un rollOver paso a paso"
http://e-contento.com/c_articulo.php?id=18

Es preferible que te lo leas. Te aclarará muchas ideas, y verás que no es necesario tener varias funciones para apagar y otras para encender, sino una única función que necesita dos parámetros, la imagen que vas a cambiar y por cuál la vas a cambiar.

Por otro lado, y aunque no me he leido las FAQs, estoy seguro que viene algún ejemplo de rollovers
__________________
eContento
- Mis artículos y tutoriales
- Mis jsfiddles
  #4 (permalink)  
Antiguo 08/06/2004, 09:30
Avatar de ludovico2000  
Fecha de Ingreso: noviembre-2003
Ubicación: Bizkaia
Mensajes: 1.315
Antigüedad: 21 años
Puntos: 2
He quitado las comillas, y he visto el link, he probado todo lo que se me ha ocurrido en ambos casos, y nada de nada.

El problema está en la primera parte, ya que poniendo el name de la imagen a mano sí va, pero claro, lo útil sería una función para todas las imágenes.

Repito la función para ver si a alguien se le ocurre algo:

function argi(zein) {
document.zein.src=eval(zein+".jpg");
};
</script>

...<tr onmouseover="argi('../img/fotouno')"...>... ///Para que lo aplique a la fila
...<img name="../img/fotouno"...>... ///En la imagen para actúe sólo sobre la que me interesa en cada caso.


SOCORRITOOOOOOOOOOOO

-COMPARTIENDO MEJORAMOS TODOS-

Última edición por ludovico2000; 08/06/2004 a las 09:33
  #5 (permalink)  
Antiguo 08/06/2004, 09:35
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Pero siempre ha de cambiar la misma imagen?

en tu función zein es una variable que toma el valor de lo que se le envía desde la llamada a la función.

Si le pides argi('../img/fotouno')">... la función interpretará esto

document.../img/fotouno.src='./img/fotouno.jpg'

y obviamente esta parte document.../img/fotouno.src='./img/fotouno.jpg' es sintácticamente incorrecta. Debes referenciar al name o al id de la imagen a la cual pretendas cambiar el src
  #6 (permalink)  
Antiguo 08/06/2004, 09:39
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Este name para la imagen img name="../img/fotouno" no es adecuado

Si quieres que la función actue sobre distintas imágenes cambiando a distintos src prueba algo tipo.....


function argi(zein,pepe) {
document.getElementById(pepe).src=eval(zein+".jpg" );
};
</script>

...<tr onmouseover="argi('../img/fotouno','miAfoto')"...>...
...<img id="miAfoto"...>...


Saludos a James Tiberius
  #7 (permalink)  
Antiguo 08/06/2004, 09:43
Avatar de ludovico2000  
Fecha de Ingreso: noviembre-2003
Ubicación: Bizkaia
Mensajes: 1.315
Antigüedad: 21 años
Puntos: 2
¡¡¡¡¡¡LO HISE!!!!! ¡¡¡¡¡¡LO HISE!!!!! ¡¡¡¡¡¡LO HISE!!!!! ¡¡¡¡¡¡LO HISE!!!!!

GRACIAS A TODOS, Y EN ESPECIAL A TUNAIT, QUE ME HA ENCAMINADO DEFINITIVAMENTE. Tunait, te sugiero que aclares todo este lío y lo publiques (tú que sabes más ) en las FAQ.

Solución:

<script>

function argi(zein) {
document.images[zein].src=("../img/"+zein+".jpg");
};
</script>

<script>
function ilun(zein) {
document.images[zein].src=("../img/"+zein+"off.jpg");
};
</script>

<tr ... onMouseOver="argi('mifoto')" onmouseout="ilun('mifoto')"...>
...
<img name="mifoto"...>

[En los tres sitios tiene que ser el mismo nombre "mifoto")

P.S.: He utilizado las palabras "argi", "ilun" y "zein" que en euskera (lengua vasca) significan "claro", "oscuro" y "cuál". Invito a evitar el inglés y utilizar cada uno su lengua. (Vaaale, yo tb he usado "off"...)


-COMPARTIENDO, MEJORAMOS TODOS-


P.S.: Tuanit, James T. Kirk agradece tus saludos.

Última edición por ludovico2000; 09/06/2004 a las 10:32
  #8 (permalink)  
Antiguo 10/06/2004, 15:14
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Cita:
Iniciado por ludovico2000
P.S.: Tuanit, James T. Kirk agradece tus saludos.
qué bien, ¿me firma un autógrafo?

Me alegra que lo solucionaras

un saludo
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:48.