angular - 我不知道如何修复 HostListener 上的点击事件
问题描述
嗨,伙计们,我正在使用keyup事件显示一个 div。每当我单击 keyup 事件时,也使用 clickoutside 事件 clickoutside 事件也会触发。谁能告诉我如何解决这个问题?
使用 HostListener 模块。
@HostListener('keyup')
click(){
console.log('inside keyup');
}
@HostListener('document:click')
cickout(){
console.log('clicked outside');
}
解决方案
您可以检查单击的元素是否是输入并将您的逻辑基于此:
@HostListener('document:click', ['$event'])
cickout(event) {
if (event.target.tagName == "INPUT") {
console.log('input is clicked');
} else {
// do stuff
}
}
演示:StackBlitz
推荐阅读
- node.js - Web3 - 发送交易导致“无效发件人”
- c# - 如何限制从 Internet 访问 Web 资源但在 Intranet 中公开
- django - 更新 django 中的模型字段在运行时无法正常工作
- javascript - 函数触发多次,具体取决于您打开模态的次数
- javascript - 如何通过 Cefsharp 在文本框控件中传递值
- c# - 如何选择**数据库表
- php - 不使用 curl 获取个人数据
- jakarta-ee - ActiveMQ 嵌入式推荐
- javascript - 为什么将新创建的元素插入现有元素会解析 [Object HTMLElement]?
- bash - error while running shell script through jenkins pipeline