【问题标题】:style.opacity isn't working inside the ajax functionstyle.opacity 在 ajax 函数中不起作用
【发布时间】:2019-11-10 23:57:00
【问题描述】:

我在我的网站上创建了拖放功能。当您将图像放入该区域时,将显示图像预览以及右上角的 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;
    }

【问题讨论】:

  • 您将deleteImage 设置为addEventListener(...) 的返回值,它不返回值,而不是实际元素。

标签: javascript html css sass


【解决方案1】:

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

您需要将deleteImage 定义为getElementById 的返回值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-05
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 2023-03-27
    • 2014-03-14
    相关资源
    最近更新 更多