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

时间:2016-01-13 19:15:42

标签: javascript angularjs javascript-events ionic-framework ionic

我该怎么办?我已经查看了离子论坛,谷歌搜索结果,并没有找到任何有用的东西。此外,我已尝试触发private static byte[] computeHash<T>(object instance, T cryptoServiceProvider) where T : HashAlgorithm, new() { // Original Code using DataContractSerializer throws an Exception. //DataContractSerializer serializer = new DataContractSerializer(instance.GetType()); // Use the following instead of the above in order to avoid Exception being thrown. NetDataContractSerializer serializer = new NetDataContractSerializer(); using (MemoryStream memoryStream = new MemoryStream()) { serializer.WriteObject(memoryStream, instance); cryptoServiceProvider.ComputeHash(memoryStream.ToArray()); return cryptoServiceProvider.Hash; } } dblclickdbltapdoubletap,甚至多个doubleClicktap事件,但似乎没有工作

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

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

ion-item

我的规格,就像这样:

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

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

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

在离子状态下,显然您可以随时使用ionic.trigger来触发您想要的任何事件,其中包括doubletaphttp://ionicframework.com/docs/api/utility/ionic.EventController/#trigger)。

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

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

因为我在我的规范中使用了jquery,所以我不得不使用get(0)来检索DOM元素本身,因为直接传递jQuery对象并不适合我。

链接到离子论坛中的帖子:https://forum.ionicframework.com/t/how-to-programmatically-trigger-doubletap-event/41264

答案 1 :(得分:0)

这在离子中可能是不可能的,因为Ionic会删除默认的300ms延迟,以使应用程序具有更强的原生感。 Ref

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

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