OOP Javascript,将点击处理程序附加到构造函数的按钮上无法正常工作

时间:2018-11-15 14:02:27

标签: javascript jquery oop

我想从一个Javascript类创建一个处理程序“单击”,并将其附加到一个简单的按钮上。

我创建了一个简单的Javascript类:

// from ./myclass.js
class Myclass
{
    constructor()
    {
        $("input.showAlert").bind("click", this._showAlert());
    }
    _showAlert(e){
        alert("foo");
    }
}

module.exports = {
    Myclass
};

从我的主要js文件中:

// from ./main.js
const { Myclass } = require("./myclass");
var faa = new Myclass();

但是,如果这样做,当我通过浏览器加载页面时,警报“ foo”会自动出现。我不明白为什么,并且我不希望警报自动显示,仅在单击按钮“ input.addButton”时显示。

我的(非常)简单的html文件:

<input class="showAlert" />

我的错误在哪里?

2 个答案:

答案 0 :(得分:2)

您不应该在这里打电话给您

$("input.showAlert").bind("click", this._showAlert());

只需将链接传递给此方法即可:

$("input.showAlert").bind("click", this._showAlert);

答案 1 :(得分:1)

通过编写this._showAlert(),您立即调用该函数,尝试使用this._showAlert