2 votos

Como usar variable de una funcion en otra funcion

Bueno lo que quiero saber es que como paso la variable "i" que esta dentro abrirImagen y pasarla a las otras funciones izquierda y derecha con el valor que se le asigno dentro de abrirImagen.

    var total = $("#galeria li").length;
    var i = 0;

    $("#galeria li a").on('click', abrirImagen);

    function abrirImagen(e){
        e.preventDefault();
        var href = $(this).attr('href');
        i = $(this).parent().index();
        $("#overlay").fadeIn();
        $("#overlay #contenedor_img img").attr('src', href);
    }

    $(".izquierda").on('click', function(e){
        e.preventDefault();
        var izq;
        i--;
        if(i < 0){
            i = total-1;
        }
        izq = $("#galeria li a").eq(i).attr('href');
        $("#overlay #contenedor_img img").attr('src', izq);
    });

    $(".derecha").on('click', function(e){
        e.preventDefault();
        var der;
        i = (i-1) % total;
        der = $("#galeria li a").eq(i).attr('href');
        $("#overlay #contenedor_img img").attr('src', der);
    });

0 votos

Yo creo que lo que haces debería funcionar, ¿igual el problema está en el orden de ejecución de los eventos? Si haces click en el enlace .izquierda, ¿se ejecutan los dos?¿que evento se ejecuta antes?

0 votos

Si funciona solo que pense que el error era de la variable que no actualizaba el valor dentro de la funcion abrirImagen, cosa que si lo actuliza, gracias. Es un enredo esto de las variables globales y locales, uno se puede confundir

1voto

Luis Espinoza Puntos 10

Al declarar i debería ser sin la palabra reservada var, de tal forma queda declara como global y debería poder usarse en las demás funciones.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: