【发布时间】:2021-03-14 14:28:00
【问题描述】:
执行提交时,“e”未定义...如何preventDefault然后execute()?
我试过“this.execute”(不带括号),但变量“form”不可访问。
也试过这个:
this.form.addEventListener("submit", function(e){e.preventDefault(); this.execute();}, false);
但不工作。
class Filters {
form;
constructor(form) {
this.form = form;
this.form.addEventListener("submit", this.execute(), false);
}
execute(e) {
e.preventDefault();
[...]
}
}
let f = new Filters([...],[...]);
【问题讨论】:
-
您是否遇到任何错误?
-
你没有向
execute函数传递任何参数 -
将
this.execute()更改为this.execute.bind(this) -
我收到
e is undefined -
您正在调用该函数,而不是将其作为参考传递
标签: javascript events preventdefault