style.opacity在ajax函数中不起作用

时间:2019-11-10 15:54:57

标签: javascript html css sass

我已经在我的网站上创建了拖放功能。将图像放在此区域中时,将显示图像预览以及右上角的X标记,指示已删除图像。但是,当我将图像放在该区域时,X标记不可见。不透明度不会变为1。

这是我的代码。代码很长,但是我选择了相关部分:-

let deleteImage;

$(document).ready( function () {
    deleteImage = document.getElementById("deleteImage").addEventListener('click', removeImage);
})

function handleDrop(e) {
    let xhr = new XMLHttpRequest(),
        data = new FormData();

    xhr.onreadystatechange = function () {  
        if (this.readyState == 4 && this.status == 200) {
            console.log("Response " + this.responseText);
            imageUrlInput.value = this.responseText;
            previewDropArea.setAttribute("src", this.responseText ); 

            //------------- This code isn't working -----------------------------------
            deleteImage.style.opacity = "1";
        }
    }
}

let removeImage = function (event) {
    previewDropArea.setAttribute("src", "#");
    imageUrlInput.value = "";
    this.style.opacity = "0";
}  

这是我与之关联的SASS:-

#deleteImage{
        height: 20px;
        width: 20px;
        align-self: flex-start;
        position: relative;
        left: 90px;
        opacity: 0;
    }

1 个答案:

答案 0 :(得分:1)

您已将deleteImage定义为addEventListener的返回值,因此它不是HTML元素。

您需要将deleteImage定义为getElementById