私は自分のサイトをタッチ フレンドリーにし、うまく機能するシンプルなカルーセル スタイルのプラグインを作成しましたが、touchend イベントが発生し、元のターゲットが画像だった場合 (ユーザーが画像にタッチしてからスワイプ/左に移動してナビゲートした場合)、まだ開いています。画像に関連付けられたリンク。
event.stopPropagation() と event.preventDefault() を入れましたが、効果はありません。
これを防ぐ方法について誰か考えがありますか?
編集:
私は以下を使用してタッチイベントをバインドしています:
obj.parent().bind('touchstart', onTouchStart);
obj.parent().bind('touchend', onTouchEnd);
タッチエンド機能はこちら
function onTouchEnd(event) {
if(!cdata.in_touch) return;
cdata.in_touch = false;
var pos = getPointerPosition(event);
var final_distance = Math.sqrt(pos.x - cdata.touch_start);
cdata.timer_end = new Date();
cdata.timer_length = cdata.timer_end - cdata.timer_start;
if(cdata.timer_length > 100) {
if (final_distance > 100) {
event.stopPropagation();
event.preventDefault();
// no effect, link associated with image still fires
return;
}
}
}