Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS7中jQuery移动刷卡事件的不稳定行为_Jquery_Jquery Mobile_Ios7_Swipe - Fatal编程技术网

iOS7中jQuery移动刷卡事件的不稳定行为

iOS7中jQuery移动刷卡事件的不稳定行为,jquery,jquery-mobile,ios7,swipe,Jquery,Jquery Mobile,Ios7,Swipe,我有一个小脚本,它使用jQuery Mobile的swipeleft和swiperight事件来更改div元素中的文本。由于将各种苹果设备升级到iOS7,它无法正常工作 我已经设置了一个简单的小提琴来重现这个问题。 示例jQuery 样本标记 0 0 如果您在每个div.score上多次swipleft或swiperight,它会开始表现不稳定,在事件触发之前会有很大的延迟,有时直到您再次与屏幕交互(滚动/触摸等)时才会触发 我很确定这不是我测试过的单个设备所特有的,并且在不同的设备上(2x

我有一个小脚本,它使用jQuery Mobile的
swipeleft
swiperight
事件来更改
div
元素中的文本。由于将各种苹果设备升级到iOS7,它无法正常工作

我已经设置了一个简单的小提琴来重现这个问题。 示例jQuery 样本标记

0
0
如果您在每个
div.score
上多次
swipleft
swiperight
,它会开始表现不稳定,在事件触发之前会有很大的延迟,有时直到您再次与屏幕交互(滚动/触摸等)时才会触发

我很确定这不是我测试过的单个设备所特有的,并且在不同的设备上(2x iPhone 5s、iPhone 5、iPhone 4、iPad第二代和iPad第四代)都得到了相同的结果

在升级到iOS7之前,它工作得非常完美,我尝试过搜索,看看是否有其他人遇到过这个问题,或者看看它是否是iOS7中Safari Mobile的已知错误,但我找不到任何东西

如果有人能提供解释或可能的解决方案,我将不胜感激。

使用
setTimeout()
似乎可以解决问题:

$('#container').on('swipeleft swiperight', '.score', function(e) {
  var $this = $(this);
  setTimeout(function() {
    $this.text( parseInt($this.text(), 10) + (e.type == 'swipeleft' ? -1 : +1) );
  }, 0);
});


没错,我刚刚在iPhone5 iOS 7.0.2上测试过。也许这与Safari的新更新有关,即向右滑动会返回到上一页。我建议不要使用左/右滑动。。现代移动浏览器现在将其归因于切换到上一个/下一个选项卡。。在iOS7和Android ChromeI上测试,它将水平阈值修改为20px而不是30px(默认值),性能更好,但当然更敏感。
<div id="container">
    <div class="score">0</div>
    <div class="score">0</div>
</div>
$('#container').on('swipeleft swiperight', '.score', function(e) {
  var $this = $(this);
  setTimeout(function() {
    $this.text( parseInt($this.text(), 10) + (e.type == 'swipeleft' ? -1 : +1) );
  }, 0);
});