繁体   English   中英

JavaScript事件监听器在页面加载时触发,而不是click事件

[英]Javascript event listener firing on page load, not click event

我正在玩Javascript,并创建了一个类。 在初始化类时,我向某个div添加一个按钮,然后为该按钮单击时添加一个事件侦听器。 但是,发生的情况是该函数在页面加载时触发,而不是在单击按钮时触发。 这是我的代码:

    function Photobank(){
        this.photos;
        this.addPhotoButton;
    }

    Photobank.prototype.init = function(){
        var btn = document.createElement('button');
        btn.id = "photoupload";
        var t=document.createTextNode("ADD PHOTOS");
        btn.appendChild(t);
        this.addPhotoButton = btn;
        var pb = document.getElementById('photobank');
        pb.appendChild(this.addPhotoButton);
        this.addPhotoButton.addEventListener("click", this.launchMediaManager(), false);
    }

    Photobank.prototype.launchMediaManager = function(){
        alert("Launching Media Manager");
    }

我做错什么了吗?

您在调用函数,而不是将函数作为参数传递给addEventListener 删除函数名称末尾的括号:

this.addPhotoButton.addEventListener("click", this.launchMediaManager, false);

这是因为您要调用函数并将其结果设置为click事件的处理程序,而不是将函数引用设置为处理程序。

this.addPhotoButton.addEventListener("click", this.launchMediaManager, false);

暂无
暂无

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

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