移動端click事件無反應或反應慢 touchend事件頁面滑動時頻繁觸發
阿新 • • 發佈:2019-03-21
touch eve false 監聽 func pan list 無奈 瀏覽器
H5頁面的點擊事件click 無論在瀏覽器 iframe還是小程序裏面 都會出現點擊無反應或者反應慢的情況出現
所以決定用touchend事件來代替click
但是touchend事件觸發比較靈敏 在滑動頁面時 如果不小心觸碰有touchend事件的元素都會觸發
尤其是在滿屏都有touchend元素的頁面中 只要稍有滑動都會觸發該事件 很無奈
解決方法如下:
監聽滑動事件 在滑動事件裏面阻止touchend事件
function stopTouchendPropagationAfterScroll() { var locked = false; window.addEventListener(‘touchmove‘, function() { locked || (locked = true, window.addEventListener(‘touchend‘, stopTouchendPropagation, true)); }, true); function stopTouchendPropagation(ev) { ev.stopPropagation(); window.removeEventListener(‘touchend‘, stopTouchendPropagation, true); locked = false; } } var divs = $(".go"); stopTouchendPropagationAfterScroll(); divs.on("touchend", function() { alert(‘觸發touchend‘)
});
移動端click事件無反應或反應慢 touchend事件頁面滑動時頻繁觸發