Jos*_*osa 19 tap click ionic2 ionic3 angular
我从angular2和ionic2开始;
在ionic2中,我有一个按钮,可以调用我的组件的方法.像这样:
<button secondary clear large>
</button>
Run Code Online (Sandbox Code Playgroud)
我应该使用(click)- angular2 OR (tap) - ionic2?
像这样:
(click)
<button secondary clear large (click)="pause()">
</button>
Run Code Online (Sandbox Code Playgroud)
(tap)
<button secondary clear large (tap)="pause()">
</button>
Run Code Online (Sandbox Code Playgroud)
有一些区别吗?您可以(tap)在
http://ionicframework.com/docs/v2/components/#gestures中看到
谢谢.
Iva*_*ers 51
如果制作移动应用程序,(tap)可能会更好.这是因为当使用(click)动作总是执行时,即使在意外敲击时也是如此.(tap)如果用户持有较长时间,则不会执行.如果你想要一个需要长时间点击的按钮,你可以使用(press).
请注意,在某些离子版本中,(click)事件不会在iOS上执行.因此,使用(tap)将是推荐的解决方案.
Wil*_*ris 11
我认为这实际上取决于你想要用户体验的"本地化".
该(tap)活动来自Hammer.js图书馆.如果您查看该链接,您将看到为了触发点击事件必须满足的要求.
要注意的第一个要求是时间选项,默认值为250ms.这意味着如果按下的时间超过250毫秒,则事件不会触发.
需要注意的第二个要求是阈值选项,默认值为2(不确定这是什么单位,可能是像素).这意味着如果印刷机的移动大于2,则事件不会触发.例如,在屏幕上方从左到右移动手指,然后在此移动过程中按下元素,根据移动速度,事件可能不会触发.
然而
(click)在我刚刚指出的两种情况下,事件仍将触发,只要释放按下时它仍然在目标元素内.
起初我说"它真的取决于"的原因是基于其他应用程序如何处理这些场景(每个应用程序可能会有所不同,并且它可能也会根据用例的结果而有所不同).
据我所知,我检查的Android应用程序上的按钮(具有可视结果的按钮,例如导航或弹出消息)的工作方式与(click)Angular提供的事件相同.
我无法评论IOS应用程序如何使用与我未测试过的原理相同的原理.
我并不是说在每个用例中(click)都应该使用而不是(tap)尝试考虑其他本机应用程序的行为,并从那里决定哪个最合适.