为了账号安全,请及时绑定邮箱和手机立即绑定

JS图片预览问题,导致后续函数不执行问题?

JS图片预览问题,导致后续函数不执行问题?

子衿沉夜 2019-03-21 18:15:43
以下是代码片段使用的JS本地预览图片,上传后加载到预先写好的DIV中,然后图片加载完成后后续函数弹出的提示 很快背覆盖甚至其他功能弹出的提示也并不能使用,困惑很久,求解答。function PreviewImage(divImage, upload) {    if (checkPic()) {        try {            //console.log(upload.files[0]);            var imgPath = getObjectURL(upload.files[0]);            // $(".divImage").css("background","url(imgPath)")            document.getElementById(divImage).innerHTML = "<img id='imgPreview' class='bgimg1' src='" + imgPath + "' width='" + '100%' + "' height='" + '100%' + "'/>";            $(".menu").hide();            $(".menuswitch1").removeClass('menuswitch1').addClass('menuswitch');            var appElement = document.querySelector('[ng-controller=screenCtrl]');            var $scope = angular.element(appElement).scope();            $(".success_text").html("更改背景图片成功");            $scope.$apply(function () {                $scope.success_display = false;            })            setTimeout(function () {                $scope.$apply(function () {                    $scope.success_display = true;                })            }, 2000);        } catch (e) {            alert("无法预览图片");        }    }}
查看完整描述

2 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

把jQ的部分改了改,字符串的地方看的脑仁疼。。。Angular的部分没动。


function PreviewImage(divImage, upload) {

    if (checkPic()) {

        var imgPath = getObjectURL(upload.files[0]);

        $('<img>', {

            "class": 'bgimg1',

            id: 'imgPreview',

            css: {

                width: '100%',

                height: '100%'

            }

        }).appendTo('#divImage');

        $('.menu').hide();

        $('.menuswitch1')

            .toggleClass('menuswitch1')

            .toggleClass('menuswitch');

        var appElement = $('[ng-controller="screenCtrl"]')[0];

        var $scope = angular.element(appElement).scope();

        $('.success_text').html('更改背景图片成功');

        $scope.$apply(function () {

            $scope.success_display = false;

        })

        setTimeout(function () {

            $scope.$apply(function () {

                $scope.success_display = true;

            })

        }, 2000);

    }

}

另外,

  1. 下次尽量别try这么大块的代码吧。。。还不如多console点或者等报错

  2. 引号建议以单引号为主


查看完整回答
反对 回复 2019-03-28
  • 2 回答
  • 0 关注
  • 412 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信