【问题标题】:Angular:- Event Misfire when Pointer Enters Sibling ControlAngular:-当指针进入同级控件时事件失火
【发布时间】:2019-08-25 11:25:09
【问题描述】:

要求:

  1. 显示阵列中的图像
  2. 每张图片的中心都有一个按钮,应该只在图片悬停时显示。

所以,根据要求,我使用 ngFor 循环来显示图像,并且按钮只有当用户在图像上输入鼠标时才会获得布尔值 true,它工作正常,但是当我将指针指向按钮时,两个事件都被触发:- 鼠标进入和鼠标离开。

<div style="display:flex;justify-content:center;align-items:center;" class='thumbnail'>
<div *ngFor="let gallery of galleries; let i = index ">

      <img 
        [src]="imagesrc "
        alt="gallery thumbnail" (mouseenter)="enter(i)" (mouseleave)="leave(i)"/>

   <button *ngIf='showEditButton' class="btn btn-primary" style="position:absolute;">EDIT</button>
  </div>


 public enter(i) {
    this.hoverIndex = i;
console.log('mouse enter');
   }

   public leave(i) {
    this.hoverIndex = null;
console.log('mouse leave');
   }

【问题讨论】:

    标签: angular


    【解决方案1】:

    我的建议是将 (mouseenter)(mouseleave) 事件放在包含图像和按钮的 div 上(使用 *ngFor="")。

    我相信正在发生的事情是您的鼠标离开 &lt;img&gt; 并进入 &lt;button&gt; 从而触发事件。

    我还建议您将这篇文章的标题更改为更合适的名称: 以"Angular: Event Misfire when Pointer Enters Sibling Control" 为例。

    【讨论】:

    • 我可以为此获得 stackblitz 吗?
    • 它不起作用,因为您的 &lt;img&gt;&lt;button&gt; 在 DOM 中表示为 siblings 并且您的事件在 img 上.因此,当您将鼠标悬停在 &lt;button&gt; 上时,&lt;img&gt; 将退出 - 触发 (mouseleave)
    猜你喜欢
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 2011-01-24
    • 2021-10-11
    • 2016-12-02
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    相关资源
    最近更新 更多