Javascript事件监听器在页面加载时触发,而不是单击事件

jor*_*dan 0 javascript

我正在玩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");
    }
Run Code Online (Sandbox Code Playgroud)

我做了明显错误的事吗?

Bar*_*mar 11

你正在调用函数而不是将函数作为参数传递给addEventListener.取下函数名称末尾的括号:

this.addPhotoButton.addEventListener("click", this.launchMediaManager, false);
Run Code Online (Sandbox Code Playgroud)