当前位置 : 主页 > 网页制作 > css >

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

来源:互联网 收集:自由互联 发布时间:2021-06-13
1、网上的同学说的,直接修改源代码,但是这种方法可能会影响到现有的程序。 搜索onBeforeScrollStart方法,将其中的preventDefault禁止掉 搜索_end方法,将其中模拟click事件的方法全部给注释

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 () {
。。。
网友评论