微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 () {
。。。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。