jquery觸摸滑動事件是移動端開發中常用的交互方式,通常用于實現手勢滑動頁面、圖片輪播等功能。但是,在使用jquery觸摸滑動事件時,常常會遇到事件沖突的問題。
$(document).on('touchstart', function(e){ e.preventDefault(); startX = e.originalEvent.changedTouches[0].pageX; }); $(document).on('touchmove', function(e){ e.preventDefault(); var moveEndX = e.originalEvent.changedTouches[0].pageX; var X = moveEndX - startX; if ( X > 0 && Math.abs(X) > 50 ) { pre(); } else if ( X < 0 && Math.abs(X) > 50 ) { next(); } });
上面的代碼實現了手勢滑動切換上一張或下一張圖片的功能,但是,如果頁面中還有其他的觸摸滑動事件,可能會導致事件沖突。
為了避免事件沖突,可以使用jquery的off()方法和on()方法來控制事件的綁定和解綁。比如:
//解綁所有綁定的觸摸滑動事件 $(document).off('touchstart touchmove'); //解綁其他元素的觸摸滑動事件 $('.other-element').off('touchstart touchmove'); //綁定自己需要的觸摸滑動事件 $(document).on('touchstart', function(e){ e.preventDefault(); startX = e.originalEvent.changedTouches[0].pageX; }); $(document).on('touchmove', function(e){ e.preventDefault(); var moveEndX = e.originalEvent.changedTouches[0].pageX; var X = moveEndX - startX; if ( X > 0 && Math.abs(X) > 50 ) { pre(); } else if ( X < 0 && Math.abs(X) > 50 ) { next(); } });
通過控制事件的綁定和解綁,可以有效避免jquery觸摸滑動事件的沖突,同時保證頁面的正常交互。