JavaScript - Problema pasar parametro funcion

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 3 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema pasar parametro funcion

Publicado por Gustavo (2 intervenciones) el 15/12/2016 16:09:19
Que tal estoy intentando llamar a una funcion ante el evento onclick y funciona bien exepto cuando le paso parametros. El codigo es el siguiente


1
2
3
4
5
6
7
8
9
10
11
12
13
14
window.onload = function () {
    //Hago esto porque son varios elementos iguales
    var Fotos = document.getElementsByClassName("Foto");
    i = Fotos.length;
    while(i--){
        Fotos[i].onclick = SaludosTerricolas("Variable");
    }
 
};
 
function SaludosTerricolas(foto) {
    alert(foto);
 
}

En teoria tendria que funcionar pero no hace nada. Aclaro que el echo de usar el array no tiene nada que ver porque tambien lo probe con getelementbyid y es lo mismo.
Muchas gracias de antemanoo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema pasar parametro funcion

Publicado por xve (2100 intervenciones) el 15/12/2016 18:51:19
Hola Gustavo, he intentado probar tu código, y lo que hace, es que al cargar la pagina, muestra los tres alert... este es el código que he utilizado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!DOCTYPE html>
<html>
<head>
 
<style>
img {width:100px;height:100px;border:1px solid}
</style>
 
</head>
<body>
 
<img src="" class="Foto">
<img src="" class="Foto">
<img src="" class="Foto">
 
</body>
</html>
 
<script>
window.onload = function () {
    //Hago esto porque son varios elementos iguales
    var Fotos = document.getElementsByClassName("Foto");
    i = Fotos.length;
    while(i--){
        Fotos[i].onclick = SaludosTerricolas("Variable");
    }
};
 
function SaludosTerricolas(foto) {
    alert(foto);
 
}
</script>

Pero no crea el evento, ya que hasta donde yo se, con javascript no se crea así... nos puedes comentar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 3 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema pasar parametro funcion

Publicado por Gustavo (2 intervenciones) el 15/12/2016 23:05:27
Claroo, ese es justamente el problema. En ves de ejecutar la funcion cuando uno hace click la ejecuta al cargarse la pagina.

Para que se entienda mas facil:

1
2
3
4
5
6
7
window.onload = function () {
    document.getElementById("Foto").onClick = SaludosTerricolas("Holaaa");
};
 
function SaludosTerricolas(Texto) {
    alert(Texto);
}

Si se ejecuta ese codigo sin ponerle nungun parametro a la funcion funciona correctamente. Cuando le agrego el parametro, se ejecuta al cargarse la pagina y despues no responde al evento onClick.



Lo solucione de la siguiente manera;

1
2
3
4
5
6
7
8
9
10
11
12
window.onload = function () {
    //Asigna el evento onclick a la todos los elementos de la clase foto
    var Fotos = document.getElementsByClassName("Foto");
    i = Fotos.length;
    while(i--){
        //Cambia el src de la imagen grande por la chiquita que se clikeo
        Fotos[i].onclick = function(){
           var a = this.getAttribute('src');
           document.getElementById("Imagen").src = a;
        }
    }
};


Si bien quedo funcionando y todo, me quedo la duda porque a mi entender la forma anterior deberia de funcionar tambien.
A ver, para que se entienda, lo que yo queria era separa la asignacion de la funcion al evento onClick, por una cuestion meramente estetica (hablando de codigo).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar