3

我想注册一个保持事件,但是“跳过”这个元素及其父元素的“点击”事件背后的逻辑......我该怎么做?

测试用例(请随意分叉和编辑):http ://codepen.io/muszek/pen/detAK

用例:用户按住#foo 框以打开带有该元素选项的#bar 对话框。单击任意位置(但在#bar 上)关闭#bar。目前,按住#foo 会打开#bar,但在释放按钮时会立即将其关闭。

4

3 回答 3

4

Hammer.js 并没有真正处理原生事件。所以在这里你应该监听tap事件而不是click.

如果手势是 a ,我认为不会触发点击事件hold,但如果确实如此,只需调用e.gesture.stopDetect();以防止触发多种手势类型。(例如,这通常用于防止release在 a 之后触发事件swipe

于 2013-10-02T13:41:56.917 回答
2

您无法阻止触发原生点击。你应该做的是听“点击”而不是“点击”。Hammer.js 将保持定义为持续超过一定时间的点击。

如果您根本不听“点击”,但想防止触发 href 或按钮,请忘记它。更改 div 的按钮和普通文本的 href,设置它们的样式,使它们看起来像以前一样,现在在它们上听“tap”。

于 2014-06-05T09:20:47.577 回答
-1

http://codepen.io/anon/pen/dPVXrP

包裹在 parent 内<div>

于 2015-02-02T09:35:08.577 回答