移动端click事件无反应或反应慢 touchend事件页面滑动时频繁触发

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事件页面滑动时频繁触发

上一篇:OSGI(面向Java的动态模型系统)


下一篇:Android开发学习记录--ListView使用