繁体   English   中英

在更改时不输入addEventListener

[英]Input addEventListener on change not firing

我只有一个输入即可上传图片。

html

<main>
    <input id="hs-p" type="file" accept="image/*" capture="camera">
</main>

<script type="text/javascript">
    let hsp = new HPS();
</script>

我想听听这个输入的变化(当有人向它添加图像时)。

js

let imageInput = null;

class HSP {       
    constructor() {

        this.imageInput = document.getElementById('hs-p');

        if (this.imageInput) {
            this.imageInput.addEventListener("change", this.uploadImage());
        }
   }

    uploadImage() {
        console.log("upload image", this.imageInput);
    }
}

module.exports = HSP;

当某人添加图像时,应调用uploadImage回调。 但是,此功能仅在页面加载时触发一次,而在将图像添加到输入或更改输入图像时永远不会触发。

我正在使用node&webpack输出上述自定义库/ sdk,然后将其导入到我的html中。

将您的活动更改为此:

this.imageInput.addEventListener("change", () => this.uploadImage());

或对此:

this.imageInput.addEventListener("change", this.uploadImage.bind(this));

您正在执行的是调用uploadImage并将其结果传递给侦听器。 您要将引用传递给侦听器。

更改this.imageInput.addEventListener("change", this.uploadImage()); this.imageInput.addEventListener("change", this.uploadImage); (在this.uploadImage之后删除了()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM