如何从一个函数访问变量到另一个函数

时间:2019-02-21 02:50:15

标签: javascript jquery

我有一个图像管理器,上面有描述,可以在其中修改图像和图像文件的文本。

这个想法是要能够保存我在数据库中所做的修改,但是我发现的方法是仅在修改图像时保存。如果我不修改图像,则无法保存文本的修改。

我想到能够在click函数中访问imagePopup变量并能够解决问题,但是我不知道这是否可能。

也许您知道一种更好的方法,但我没有看到。

感谢您的帮助!

我给您JQUERY代码:

/*=============================================
UPLOAD IMAGE
=============================================*/

$("#subirPopup").change(function(){

    var imagenPopup = this.files[0];

    /*=============================================
    VALIDATE JPG O PNG
    =============================================*/

    if(imagenPopup["type"] != "image/jpeg" && imagenPopup["type"] != "image/png"){

        $("#subirLogo").val("");

        swal({
              title: "Error al subir la imagen",
              text: "¡La imagen debe estar en formato JPG o PNG!",
              type: "error",
              confirmButtonText: "¡Cerrar!"
            });

    /*=============================================
    VALIDATE SIZE IMAGE
    =============================================*/

    }else if(imagenPopup["size"] > 2000000){

        $("#subirLogo").val("");

         swal({
              title: "Error al subir la imagen",
              text: "¡La imagen no debe pesar más de 2MB!",
              type: "error",
              confirmButtonText: "¡Cerrar!"
            });

    /*=============================================
    PREVISUALIZATION 
    =============================================*/

    }else{

        var datosImagen = new FileReader;
        datosImagen.readAsDataURL(imagenPopup);

        $(datosImagen).on("load", function(event){

            var rutaImagen = event.target.result;

            $(".previsualizarPopup").attr("src", rutaImagen);

        })

    }

    /*=============================================
    SAVE CHANGES
    =============================================*/

    $("#guardarPopup").click(function(){

        var tituloPopup = $("#tituloPopup").val();

        var textoBotonPopup = $("#textoBotonPopup").val();

        var rutaBotonPopup = $("#rutaBotonPopup").val();    

        var datos = new FormData();
        datos.append("tituloPopup", tituloPopup);
        datos.append("textoBotonPopup", textoBotonPopup);
        datos.append("rutaBotonPopup", rutaBotonPopup);
        datos.append("imagenPopup", imagenPopup);

        $.ajax({

            url:"ajax/popup.ajax.php",
            method: "POST",
            data: datos,
            cache: false,
            contentType: false,
            processData: false,
            success: function(respuesta){

                if(respuesta == "ok"){

                    console.log(respuesta);

                    swal({
                      title: "Cambios guardados",
                      text: "¡La plantilla ha sido actualizada correctamente!",
                      type: "success",
                      confirmButtonText: "¡Cerrar!"
                    });

                }


            }

        })


    })

})

2 个答案:

答案 0 :(得分:1)

尝试在更改功能之外声明imagenpopup ...

var imagenPopup='';
$("#subirPopup").change(function(){
imagenPopup = this.files[0];

/*=============================================
VALIDATE JPG O PNG
=============================================*/

if(imagenPopup["type"] != "image/jpeg" && imagenPopup["type"] != "image/png"){

    $("#subirLogo").val("");

    swal({
          title: "Error al subir la imagen",
          text: "¡La imagen debe estar en formato JPG o PNG!",
          type: "error",
          confirmButtonText: "¡Cerrar!"
        });

/*=============================================
VALIDATE SIZE IMAGE
=============================================*/

}else if(imagenPopup["size"] > 2000000){

    $("#subirLogo").val("");

     swal({
          title: "Error al subir la imagen",
          text: "¡La imagen no debe pesar más de 2MB!",
          type: "error",
          confirmButtonText: "¡Cerrar!"
        });

/*=============================================
PREVISUALIZATION 
=============================================*/

}else{

    var datosImagen = new FileReader;
    datosImagen.readAsDataURL(imagenPopup);

    $(datosImagen).on("load", function(event){

        var rutaImagen = event.target.result;

        $(".previsualizarPopup").attr("src", rutaImagen);

    })

}

/*=============================================
SAVE CHANGES
=============================================*/

$("#guardarPopup").click(function(){

    var tituloPopup = $("#tituloPopup").val();

    var textoBotonPopup = $("#textoBotonPopup").val();

    var rutaBotonPopup = $("#rutaBotonPopup").val();    
    if(imagenPopup == ''){
    var datos = new FormData();
    datos.append("tituloPopup", tituloPopup);
    datos.append("textoBotonPopup", textoBotonPopup);
    datos.append("rutaBotonPopup", rutaBotonPopup);
    datos.append("imagenPopup", imagenPopup);

    $.ajax({

        url:"ajax/popup.ajax.php",
        method: "POST",
        data: datos,
        cache: false,
        contentType: false,
        processData: false,
        success: function(respuesta){

            if(respuesta == "ok"){

                console.log(respuesta);

                swal({
                  title: "Cambios guardados",
                  text: "¡La plantilla ha sido actualizada correctamente!",
                  type: "success",
                  confirmButtonText: "¡Cerrar!"
                });

            }


        }

    })


}) } else { 
swal({
      title: "Error al subir la imagen",
      text: "Some Error",
      type: "error",
      confirmButtonText: "¡Cerrar!"
    });
}})

答案 1 :(得分:1)

在每个函数的顶部声明变量

var imagenPopup='';

$("#subirPopup").change(function(){
   //.. add more code
});

$("#guardarPopup").click(function(){
   //.. add more code
});