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')
});