【问题标题】:Angular - Show / Hide element on focusAngular - 在焦点上显示/隐藏元素
【发布时间】:2020-09-15 22:56:48
【问题描述】:

我有一个 input 元素和一个 ,如果输入被选中,我想显示它,但如果输入或其中一个项目被点击,则隐藏它。

<input type="text" (focusin)="showPropertiesList=true">
<ul *ngIf="showPropertiesList">
...
</ul>

我尝试在输入上添加focusout,但是当我尝试单击其中一个元素时隐藏了它,我也尝试了document.activeElement,但这似乎总是返回body标签,即使我点击了,怎么能这个解决了吗?

不确定是否重要,但 是绝对位置元素。

【问题讨论】:

    标签: angular


    【解决方案1】:

    考虑使用 DIV 元素包装这两个元素,然后将焦点指令应用于它,如下所示:

    <div (focusin)="show = true" (focusout)="show = false">
      <input>
      <ul *ngIf="show"> </ul>
    </div>
    

    Working Demo

    【讨论】:

    • 我尝试过类似的方法,但这并不能解决
    • 项目上的(单击)问题(尝试单击
    • 元素上的链接/按钮会隐藏之前的列表按钮被点击)
  • 因为
  • 嵌套在包装 div 中 focusout 事件不会被触发,请尝试我的演示。
  • 我确实尝试了演示,单击任何 li 项目('how'、'are')都会为我关闭窗口。
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签