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

前端之家收集整理的这篇文章主要介绍了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 () {
。。。

猜你在找的CSS相关文章