Zepto がタッチ イベントを管理する方法は、リスナーを 、touchstart
、touchend
およびのtouchmove
イベントにバインドすることdocument.body
です。次に、送信するイベントの計算を実行し、イベントを受信した要素でイベントをトリガーしますtouchstart
。このイベントは、各要素のリスナーを呼び出す DOM ツリーをバブルアップします。
これにより、スワイプ イベントを防止する 2 つの方法が得られます。
まず、次のようなことができます。
$('#my-child-element').bind('touchstart touchend touchup', function(event) {
event.stopPropagation();
});
子要素が 1 つのタッチ イベントを受け取ると、それが親要素、特に body タグに伝播するのを防ぎます。これにより、Zepto タッチ プロセッサが何も実行できなくなり、その要素での操作中にスワイプ、タップ、singleTap、longTap、および doubleTap イベントが発生するのをブロックします。
スワイプ イベントもバブリングするため、これらの特定のイベントがページ変更のスワイプをリッスンする要素にバブリングするのを防ぐこともできます。
$('#my-child-element').bind('swipeLeft swipeRight', function(event) {
event.stopPropagation();
});
これにより、Zepto によって生成されたイベントを子要素内で受信できますが、外部では受信できません。Zepto のタップ イベントも、子内のすべての要素に対して機能します。
ここでフィドル: http://jsfiddle.net/bnickel/dUuUd/