如何以编程方式触发离子中的双击事件?
How to programmatically trigger doubletap event in ionic?
我该怎么做?我已经查看了 ionic 论坛,google 结果,但没有发现任何有用的信息。此外,我已经尝试触发 dblclick
、dbltap
、doubletap
、doubleClick
甚至多个 tap
和 click
事件,但似乎没有任何效果工作。
我知道我使用的一些事件甚至不存在,我只是想看看 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
我该怎么做?我已经查看了 ionic 论坛,google 结果,但没有发现任何有用的信息。此外,我已经尝试触发 dblclick
、dbltap
、doubletap
、doubleClick
甚至多个 tap
和 click
事件,但似乎没有任何效果工作。
我知道我使用的一些事件甚至不存在,我只是想看看 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