ionic2 tap vs click

时间:2016-09-22 01:05:46

标签: angular ionic2 click ionic3 tap

我从angular2和ionic2开始;

在ionic2中,我有一个按钮,可以调用我的组件的方法。像这样:

next

我应该使用NULL - angular2 OR import glob import numpy as np import os import pandas as pd import sys def process_txt_file(txt_filename, f): root, ext = os.path.splitext(txt_filename) fasta_filename = root + '.fasta' print('processing {} -> {}'.format(txt_filename, fasta_filename)) df = pd.read_csv(txt_filename, sep='\t' ) with open(fasta_filename, "w") as out: f.seek(0) # rewind for line in f: title = line[1:].rstrip() seq = f.readline().rstrip() if df['ReadID'].str.contains(title).any(): out.write('>{0}\n{1}\n'.format(title, seq)) if __name__ == '__main__': if len(sys.argv) != 2: print('usage: {} <path-to-txt-files-directory>'.format(sys.argv[0])) sys.exit(2) with open('VD.fasta', "r+") as f: for input_filename in glob.glob(os.path.join(sys.argv[1], 'H*.txt'): process_txt_file(input_filename, f) - ionic2?

像这样:

<button secondary clear large> </button>

(click)

(tap)

(click)

有一些区别吗?你可以在里面看到<button secondary clear large (click)="pause()"> </button> http://ionicframework.com/docs/v2/components/#gestures

THX。

6 个答案:

答案 0 :(得分:50)

如果制作移动应用,(tap)可能会更好。这是因为当使用(click)时,操作总是会执行,即使在意外点击时也是如此。 (tap)如果用户持有较长时间,则不会执行(press)。如果您想要一个需要长时间点击的按钮,可以使用(click)

请注意,在某些离子版本中,(tap)事件不会在iOS上执行。因此,建议使用{{1}}。

答案 1 :(得分:11)

我认为这实际上取决于您希望用户体验如何“原生”。

(tap)事件来自Hammer.js library。如果您查看链接,您将看到必须满足的要求才能触发点击事件。

需要注意的第一个要求是时间选项,默认值为250毫秒。这意味着如果按下的时间超过250毫秒,则事件不会触发。

需要注意的第二个要求是阈值选项,默认值为2(不确定这是什么单位,可能是像素)。这意味着如果印刷机的移动大于2,则事件不会触发。例如。在屏幕上方从左到右移动手指,然后在此移动过程中按下元素,根据移动速度,事件可能无法触发。

然而

在我刚刚指出的两种情况下,(click)事件仍将触发,只要释放按下时它仍然在目标元素内。

一开始,我说“它真的取决于”的原因是基于其他应用程序如何处理这些场景(每个应用程序可能会有所不同,并且它可能也会根据用例的结果而有所不同)。

据我所知,我检查的Android应用程序上的按钮(具有可视化结果的按钮,例如导航或弹出消息)的工作方式与Angular提供的(click)事件相同。

我无法评论IOS应用程序如何使用与我未测试过的原理相同的原理。

我并不是说在每个用例(click)都应该使用(tap)而不是<tbody> <tr ng-repeat="track in machine.noteMatrix2"> <td ng-repeat="step in track"> <div ng-model="step.value"> {{step.value}} </div> </td> </tr> </tbody> ,但请尝试考虑其他原生应用程序的行为,并从那里决定最适合的用途。

答案 2 :(得分:3)

我想补充一点,您可以对button, a等元素使用(点击)事件,但对于非按钮元素,属性tappable非常有用:

如果您想要非按钮元素的即时点击,您必须向该元素添加tappable指令,否则它有300毫秒的延迟。例如:

<div tappable (click)="someHandler()">Click me</div>

答案 3 :(得分:1)

我在iOS中遇到了(click)的问题,但在Android中它运行正常。在iOS中,当我更改了应用程序语言时,在点击链接后,它没有做任何事情。我认为这与Ionic click blocker https://github.com/driftyco/ionic/issues/6996有关。

但是,在语言更改链接立即生效后,我将(click)更改为(tap)。当语言选择没有做任何事情时(甚至在等待一段时间之后)我也遇到了问题,并且也从(click)改为(tap)并且它现在完美地运行了。

答案 4 :(得分:1)

除了最高投票问题之外,我还想指出(tap)在用作参数时处理$event的方式不同。 如果我没记错的话,在使用(tap)时,target中的$event属性将是您实际点击的元素,而不是具有(tap)事件绑定的元素。 如果您的元素中包含与(tap)绑定的子元素,那么这将是相关的。

答案 5 :(得分:-1)

iOS一般会遇到点击事件的问题(如果您在浏览器控制台中使用自适应移动设备进行测试,则会在网络上发生事件。)

通常情况下,用户必须单击两次才能执行操作。

我发现这是因为如果您正在进行移动开发(Chrome控制台甚至iOS模拟器),您将不得不使用(点击)事件。

问题很难知道,因为它的不规则行为,当你使用(点击),

通常不可点击的东西时,会出现这个问题。

因此,如果你对这些元素使用(点击)并(点击),一切都应该正常。

我的建议是两者都用得更好!