javascript - 将相同的响应附加到多个听众时得到奇怪的结果
问题描述
我将一个按钮附加submit()
到一个按钮和回车键。在新页面上,它们都附加并正常运行submit()
一次。该问题仅在单击事件运行后出现,然后按键事件开始运行submit()
两次而不是一次,而单击继续正常响应。
我觉得我以前做过这个并在实施 a getSubmit()
with someif()
或返回某些东西后解决了它(或只是错过了),但我觉得这应该可行。
var bindCtrlr = (function() {
var submit = () => console.log('hi')
document.querySelector('.add__btn').addEventListener('click', submit, false)
document.addEventListener('keypress', function(e) {
if (e.keyCode === 13 || e.which === 13) {
submit()
}
}, false)
})()
单击或按下回车键时,submit()
应始终运行一次。.add__btn
解决方案
它触发两次的原因是按钮单击事件也在输入时触发。但是如果单击后焦点仍然在按钮上,它只会触发两次。当焦点不在按钮上时,它只会触发一次。希望这会帮助你。
推荐阅读
- c# - 为 ASP.NET Core 创建自定义 CLI 命令
- python - PyQt5如何从/向QProcess读取/写入
- feign - OpenFeign Builder 默认客户端
- c# - 两个方法参数之间的泛型类型参数中的可空性不匹配
- python - 在 Python 中动态应用 setter 装饰器
- elasticsearch - 为什么 docker swarm 上的 elasticsearch 需要 transport.host=localhost 设置?
- flutter - 在异步函数内部未调用 notifyListeners
- c++ - C++ std::initializer_list 用法
- ocaml - 从列表中随机打印 OCAML
- java - ZXingScannerView 在另一个类而不是 Main