如何以编程方式触发离子中的双击事件?

How to programmatically trigger doubletap event in ionic?

我该怎么做?我已经查看了 ionic 论坛,google 结果,但没有发现任何有用的信息。此外,我已经尝试触发 dblclickdbltapdoubletapdoubleClick 甚至多个 tapclick 事件,但似乎没有任何效果工作。

我知道我使用的一些事件甚至不存在,我只是想看看 ionic 是否会以某种方式识别它们。此外,我尝试了点击事件,因为该应用程序 运行 在浏览器中运行良好,所以我认为它也可以在规范中运行。

如果有帮助,我需要它来对我的功能进行单元测试。我有一个 ion-list,当用户双击 ion-item 时,它会将项目标记为已选中。我的标记目前看起来像这样:

<ion-item on-double-tap="ctrl.toggleProductConfirmation(product)" ...

我的规范是这样的:

describe('when checking an item', function() {
  beforeEach(function() {
    this.element.find('ion-item').eq(0).trigger('doubletap');
  });

** specs here **

最后一个细节:我使用 phantom JS 来 运行 我的规格。

这在 ionic 中可能是不可能的,因为 Ionic 删除了默认的 300 毫秒延迟以赋予应用程序更原生的感觉。 Ref

您可以尝试在禁用延迟的元素中触发事件,如下所示

<div data-tap-disabled="true">
    <div id="google-map"></div>
</div>

我在 ionic 论坛问了同样的问题,幸运的是,有人能够帮助我。

在 ionic 中,显然你总是可以使用 ionic.trigger 来触发你想要的任何事件,这包括 doubletap (http://ionicframework.com/docs/api/utility/ionic.EventController/#trigger).

文档有点混乱,所以我会 post 我的代码在这里帮助遇到同样问题的人:

ionic.trigger('doubletap', { target: this.element.find('ion-item').get(0) });

因为我在规范中使用 jquery,所以我不得不使用 get(0) 来检索 DOM 元素本身,因为直接传递 jQuery 对象没有为我工作。

Link 到我在 ionic 论坛的帖子:https://forum.ionicframework.com/t/how-to-programmatically-trigger-doubletap-event/41264