Javascript 将事件侦听器附加到类方法
我试图通过类方法将事件侦听器添加到元素中。 你能告诉我我错过了什么,它不起作用了吗Javascript 将事件侦听器附加到类方法,javascript,class,methods,mouseevent,Javascript,Class,Methods,Mouseevent,我试图通过类方法将事件侦听器添加到元素中。 你能告诉我我错过了什么,它不起作用了吗 class PumpBasic { constructor(_name) { this.name = _name; } Foo() { this.element = document.getElementById(this.name + "AutoManualSwitch"); this.element.addEventL
class PumpBasic
{
constructor(_name)
{
this.name = _name;
}
Foo()
{
this.element = document.getElementById(this.name + "AutoManualSwitch");
this.element.addEventListener('click', myFunction, false);
}
myFunction()
{
console.log("clicked");
}
}
pump1 =new PumpBasic("pump1");
<input id="pump1AutoManualSwitch" data-on="Manual" data-off="Auto" data-onstyle="primary" type="checkbox" data-toggle="toggle" data-width="75" data-height="30">
类泵基础
{
构造函数(_名称)
{
this.name=\u name;
}
Foo()
{
this.element=document.getElementById(this.name+“AutoManualSwitch”);
this.element.addEventListener('click',myFunction,false);
}
myFunction()
{
控制台日志(“单击”);
}
}
pump1=新泵基础(“pump1”);
如果要将myFunction
方法作为回调函数传递给addEventListener,则需要使用此函数引用它
您还需要将其绑定以使其正常工作。如果不绑定全局事件对象,则它会在调用时重新定义它
这应该起作用:
类泵基础
{
构造函数(_名称)
{
this.name=\u name;
this.myFunction=this.myFunction.bind(this)
}
Foo()
{
this.element=document.getElementById(this.name+“AutoManualSwitch”);
this.element.addEventListener('click',this.myFunction,false);
}
myFunction()
{
控制台日志(“单击”);
}
}
常量泵1=新泵基础(“泵1”);
pump1.Foo()
对不起,那是个打字错误。我编辑了它。代码仍然不起作用,我想给你一个提示。你不应该以大写字母开始你的方法。将Foo
更改为Foo
将有助于提高可读性。