我已使用
在模块中附加了事件侦听器df.rename(columns={"colA": "col1"}, inplace=True)
但是执行该功能时,该行
document.addEventListener('keydown', () => this.clickCatcherFunction(target_id));
不会删除监听器。下次按下某个键时,它将执行clickCatcherFunction并失败。如何传递与创建它所使用的函数相同的功能以将其删除?
其他失败的尝试:
document.removeEventListener("keydown", () => this.clickCatcherFunction());
答案 0 :(得分:3)
只能删除命名函数,不能删除匿名函数,因为即使您创建相同的匿名函数,它也不会与您使用的函数完全相同 instance 以前添加了。您必须像下面这样单独设置功能:
function clickCather(evt){
. . .
}
然后,您可以使用addEventListener("click", clickCatcher)
和removeEventListener("click", clickCatcher);
添加和删除它,因为您将引用内存中的同一函数实例。
并且请注意,对于addEventListener
和removeEventListener
来说,您都不调用函数(函数名称末尾没有括号),您只想引用它。