IScroll中div点击事件触发两次解决办法

1、网上的同学说的,直接修改源代码,但是这种方法可能会影响到现有的程序。

搜索onBeforeScrollStart方法,将其中的preventDefault禁止掉
搜索_end方法,将其中模拟click事件的方法全部给注释掉.

2、使用如下代码

//为了解决iscroll直接使用click执行两次问题
var touchEvents = {
    touchstart: "touchstart",
    touchmove: "touchmove",
    touchend: "touchend",
    touch: "touchstart",
    initTouchEvents: function () {
        var self = this;
        if (self.isPC()) {
            self.touchstart = "mousedown";
            self.touchmove = "mousemove";
            self.touchend = "mouseup";
            self.touch = "click";
        }
    },
    isPC: function () {  //判断pc端与移动端

        var userAgentInfo = navigator.userAgent;
        //alert(userAgentInfo);
        var Agents = new Array("Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod");  //判断用户代理头信息
        var flag = true;
        for (var v = 0; v < Agents.length; v++) {
            if (userAgentInfo.indexOf(Agents[v]) != -1) { flag = false; break; }
        }
        return flag;   //true为pc端,false为非pc端
    }
};

  在页面中增加如下代码

touchEvents.initTouchEvents();
//点击选择范围
$("#btn").unbind(touchEvents.touch);
$("#btn").on(touchEvents.touch, function () {
。。。

  

猜你喜欢

转载自www.cnblogs.com/zhaogaojian/p/11673176.html