【问题标题】:Enable click events in iScroll on mobile browser在移动浏览器上的 iScroll 中启用点击事件
【发布时间】:2013-07-20 00:49:57
【问题描述】:

我正在使用 iScroll 创建一个 Web 应用程序,但我无法单击 iscroll 包装器中的任何 div。我尝试将 eventPassthrough 选项设置为 true,但它会导致大量滚动问题。

有人经历过吗?

编辑:我使用的是 iScroll 5。点击事件适用于 chrome、firefox 和 safari,但不适用于 ios mobile safari。

【问题讨论】:

  • 你用的是哪个版本的iscroll?

标签: javascript mobile iscroll iscroll4


【解决方案1】:

尝试设置选项“click: true”

示例:

myScroll = new IScroll('#wrapper', { click: true });

我在 IOS6 上遇到了同样的问题,它解决了这个问题

【讨论】:

  • 你还要注意,你可能需要加tap: true
  • 太棒了!解决了我在 iphone 上的问题
  • @VladislavRastrusny 默认关闭,因为这会导致 Android 上的一些双击事件(至少在某些设备上)
【解决方案2】:

我也遇到了同样的问题,并开始使用{ click: true } 方法(如上所示)作为解决方案。这种方法的问题是,在桌面上查看时会触发两个单击事件(即,一个来自实际鼠标点击的事件,一个来自 IScroll 的事件)。

IScroll documentation 建议的方法是使用 IScroll 选项发出自定义的“点击”事件。

例子:

<script type="text/javascript">
    var scroller = new IScroll('#wrapper', { tap: true });
    $('#scroller').on('click, tap', '.clickable', function() {
        //do something....
    });
</script>

<div id="wrapper">
    <div id="scroller">
        <div class="clickable"></div>
        <div class="clickable"></div>
        <div class="clickable"></div>
    </div>
</div>

【讨论】:

    【解决方案3】:

    尝试为 iphone 添加 click: true。 Android 适用于两者。但是 android 在没有 click: true 的情况下工作。

    myScroll = new IScroll('#myWrapper', { 
       tap: true, 
       click: true,    
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多