jQuery移动库 - buggy swipe detection

时间:2015-05-25 12:44:27

标签: javascript jquery html mobile

所以我的代码中存在问题。我想只检测左右滑动。我对图书馆提供的其他活动不感兴趣。

我正在使用jQuery移动库,但它有问题。

预期的行为是我的代码检测左右滑动。

收到行为。首先成功检测到滑动,然后检测不到(或者至少可能是,否则可能不是......)。通常它会检测前3次滑动,然后停止检测它们。

我注意到,在每次滑动后,如果您在浏览器/文档中单击,则下一次滑动将被检测到。

因此,如果您在滑动之间单击html文档,则可以正常工作。如果你进行多次滑动而不点击/点击它似乎不起作用。

我在Chrome版本43.x和Safari移动浏览器(Iphone和笔记本电脑)上进行了测试。我不知道如何解决这个问题。

我尝试过的事情: 为了确保我的代码中没有其他脚本或其他东西导致这种情况,我只使用了与此事件有关的事情。还是同样的问题。我也尝试了不同的jQuery版本。

我认为它可能是焦点问题,比如警报弹出后文档丢失焦点或其他东西,你必须再次点击其中。尝试在每次滑动/提醒后将焦点设置到div或html文档,但它似乎没有效果。

我也认为警报可能导致此问题,因此我取消了警报并添加了另一种检测滑动的方法,例如添加一个用于滑动检测的计数器,并在每次检测到滑动时使用计数填充html元素。也没有成功。

JS FIDDLE: https://jsfiddle.net/o1Ltq7oL/3/

HTML:

 <div class="container">
        Swipe Me
    </div>

<div id="counter"></div>

Javascript:

var count = 0;

$(".container").on("swipeleft",function(){
        count++;
        $("#counter").html(count);
    });

    $(".container").on("swiperight",function(){
        count++;
        $("#counter").html(count);
    });

的CSS:

.container {
    width:100px;
    height:100px;
    background:black;
    color:white;
}

外部资源:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  <script type="text/javascript" src="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>

非常感谢您对此事的意见,并提前非常感谢您!

1 个答案:

答案 0 :(得分:1)

我无法找到有关此类错误的任何信息,但看起来这个问题出现在jQuery Mobile 1.4.4中。也许你可以试试HammerJS而不是jQuery Mobile。