【问题标题】:iPad not detecting touch while scrolling through HTML <select> list滚动 HTML <select> 列表时 iPad 未检测到触摸
【发布时间】:2014-05-15 14:39:27
【问题描述】:

在页面加载时,计时器会启动,但每次发生触摸事件时都会重置。但是,当我滚动浏览我的 &lt;select&gt; 以查看每个 &lt;option&gt; 时,当我滑动向下滚动列表时,计时器不会重置。

idleTimer = null;
idleState = false;
idleWait = 10000;

$('*').bind('touchstart mousemove keydown onscroll scroll touchmove touchend touchcancel touchleave touch', function () {
    clearTimeout(idleTimer);
    if (idleState == true) {}
    idleState = false;
    idleTimer = setTimeout(function () { 
        location.reload();
    idleState = true; }, idleWait);
});

我也试过这些:

$('#the-list').bind(...)

$(document).bind(...)

&lt;select&gt; 是否需要不同的触摸事件?由于这是在 iPad 上运行的,因此本机操作系统是否有可能将列表包装在我不知道的东西中?

【问题讨论】:

    标签: javascript jquery html ios ipad


    【解决方案1】:

    在谈论事件和样式时,我们根本无法触及一些元素。

    选择元素就是其中之一。我认为 Apple 希望保持 select 元素的行为在整个平台上保持一致。

    另一个例子是键盘。我们甚至还没有监控键盘可见性的事件。

    【讨论】:

    • 我不是在尝试设置它的样式,我只是想让 iPad 在我滚动列表时识别它实际上正在被触摸,每次我滑动到时都会强制计时器重置滚动。
    • 是的,它不会。由于您的任何事件都不会在任何打开的选择框上触发。打开控制台并检查一下:jsbin.com/wexasuxi/1/edit 将鼠标悬停在打开的选择框上时,不会触发“yeah buddy”控制台日志。
    • 检测屏幕触摸怎么样?因此,它不是寻找手指在列表中滑动,而是寻找 iPad 上的触摸,而不管哪些底层元素受到影响?我对 iPad 知之甚少,但这是一回事吗?
    • 遗憾的是,那是不可能的 :( 因为您实际上是在“离开”浏览器并进入操作系统的默认选择组件。但是您也许可以将焦点事件添加到事件列表中。
    • 让我问你,你想完成什么?为什么需要那个计时器?也许有不同的方式..
    【解决方案2】:

    iOS 不允许您进行滚动事件。当页面完成滚动时,它们会被查询并被解雇。最近在一个视差项目中工作,这引起了很大的头痛。

    【讨论】:

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