【问题标题】:ion-chip close triggers, ion-item button event离子芯片关闭触发器,离子项目按钮事件
【发布时间】:2018-02-21 16:50:17
【问题描述】:

我有一个离子项目作为按钮,我在其中放置了一个带有十字图标删除事件的离子芯片。当点击 ion-chip 删除按钮时,触发的是 ion-item 事件而不是 ion-chip 事件。即使event.stopPropogation 也不起作用。

如何触发ion-chip onclick触发事件?

activity.html

<ion-content>
  <ion-list>
     <button ion-item style="color: #999" (click)="addProject()">
      <span *ngIf="selected_project == null">Project</span>
      <div *ngIf="selected_project != null">
        <ion-chip color="primary">
          <span style="margin-left: 10px"><i class="fa fa-book">&nbsp;{{ selected_project.name }}</i></span>
          <button ion-button clear color="light" (click)="deleteProject($event)">
            <ion-icon name="close-circle"></ion-icon>
          </button>
        </ion-chip>
      </div>
      <ion-icon name="add" item-right></ion-icon>
    </button>
  </ion-list>
<ion-content>

activity.ts

addProject(){
   //some code
}

deleteProject(event){
  event.stopPropagation(); //not working
}

【问题讨论】:

  • 是否要在同一个项目上同时添加和删除?
  • 没有。我在一个项目上应用了添加事件,在该项目内我添加了一个类似于徽章的芯片,但上面有一个额外的关闭按钮。在那个关闭按钮上,我应用了删除事件。 @skm
  • 试试event.preventDefault()...
  • 不工作@suraj

标签: angular typescript ionic-framework ionic2 ionic3


【解决方案1】:

问题不在于事件的传播,而在于该项目是一个按钮。在幕后,Ionic 做了很多事情来处理来自按钮的事件,因此为了使其工作,您可以将ion-item 更改为项目而不是具有属性ion-item 的按钮。请查看this working plunker

通过将&lt;button ion-item ...&gt;&lt;/button&gt; 替换为&lt;ion-item tappable ...&gt;&lt;/ion-item&gt;,从UI 的角度来看,结果完全相同,但这次event.preventDefault() 将正常工作。

查看

  <ion-list>
     <ion-item tappable style="color: #999; cursor:pointer;" (click)="addProject($event)">
      <span *ngIf="selected_project == null">Project</span>
      <div *ngIf="selected_project != null">
        <ion-chip color="primary">
          <span style="margin-left: 10px"><i class="fa fa-book">&nbsp;{{ selected_project.name }}</i></span>
          <button ion-button clear color="light" (click)="deleteProject($event)">
            <ion-icon name="close-circle"></ion-icon>
          </button>
        </ion-chip>
      </div>
      <ion-icon name="add" item-right></ion-icon>
    </ion-item>
  </ion-list>

组件

@Component({...})
export class HomePage {

  public  selected_project = { name: 'DemoProject'}

    constructor() {}

    public addProject(event) {
    event.stopPropagation();
    alert('Add project');
  }

  public deleteProject(event) {
    event.stopPropagation();
    alert('Delete project ');
  }

}

【讨论】:

  • 很高兴听到这个消息! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-27
  • 2017-09-29
  • 1970-01-01
  • 2016-07-02
  • 1970-01-01
  • 2018-03-14
  • 2018-09-09
相关资源
最近更新 更多