代码之家  ›  专栏  ›  技术社区  ›  Komal

角度可拖动,工具提示并单击

  •  0
  • Komal  · 技术社区  · 6 年前

    我在Angular5中使用了可拖放插件。文档链接: https://mattlewis92.github.io/angular-draggable-droppable/docs/ .

    我有一个要求,我需要显示一个弹出窗口,点击一个应用了Draggable的DIV。我正在使用此代码:

        <div class="circle" mwlDraggable [dropData]="{event: event}"  [dragAxis]="{x: event.draggable, y: event.draggable}" (dragStart)="fromEng = eng.id"  (click)="handleEvent(event, true)">
           <ng-container  *ngTemplateOutlet="tooltipBlock"></ng-container>
        </div>
    
    
        <ng-template #tooltipBlock>
         <span class="tooltiptext" >{{ event.title }}</span>
        </ng-template>
    

    这里单击事件而不是在第一次单击时触发。它在第二次单击后触发。我需要的是当我们保持和移动元素 handleEvent 单击鼠标即可调用函数。我都试过摩泽普了,但也不行。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Komal    6 年前

    我在工具提示中添加了单击事件,然后它就工作了。

    <ng-template #tooltipBlock>
        <span class="tooltiptext" (click)="handleEvent(event, true)">{{ event.title }}</span>
    </ng-template>
    

    更新: 上面的解决方案是在单击圆分区的边界时创建问题,因为工具提示位于圆分区内,所以我必须使用 tap 在Circle Div中的事件,为此我安装了 hammerjs :

    npm install --save hammerjs 
    npm install --save-dev @types/hammerjs
    

    然后导入 Hammerjs公司 在app.module.ts中:

    import 'hammerjs';
    

    然后更新代码:

    <div class="circle" mwlDraggable [dropData]="{event: event}"  [dragAxis]="{x: event.draggable, y: event.draggable}" (dragStart)="fromEng = eng.id"  (tap)="handleEvent(event, true)">
       <ng-container  *ngTemplateOutlet="tooltipBlock"></ng-container>
    </div>
    
    
    <ng-template #tooltipBlock>
     <span class="tooltiptext" >{{ event.title }}</span>
    </ng-template>