Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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
Javascript 阻止jQuery函数在mobile scroll上执行_Javascript_Jquery_Ios_Iphone - Fatal编程技术网

Javascript 阻止jQuery函数在mobile scroll上执行

Javascript 阻止jQuery函数在mobile scroll上执行,javascript,jquery,ios,iphone,Javascript,Jquery,Ios,Iphone,在我的网站上,我有一个组件,用户可以上传一个头像。当化身被拖入占位符或通过文件输入添加时,图像的预览将出现。此外,还出现了一个带有工具的小覆盖,用于裁剪、缩放或旋转图像 这一切都很好,通过桌面浏览器完全没有问题,但当我开始通过iPhone(iOS)在窗口中滚动时,问题就出现了。以某种方式执行该功能,并以某种方式重置裁剪和缩放的图像坐标。当我滚动非常小的跳跃,它似乎是好的 我使用的库是jQcrop,我已经将这个库包装成一个函数,并在占位符更改时初始化它 比如, function cropFrame

在我的网站上,我有一个组件,用户可以上传一个头像。当化身被拖入占位符或通过文件输入添加时,图像的预览将出现。此外,还出现了一个带有工具的小覆盖,用于裁剪、缩放或旋转图像

这一切都很好,通过桌面浏览器完全没有问题,但当我开始通过iPhone(iOS)在窗口中滚动时,问题就出现了。以某种方式执行该功能,并以某种方式重置裁剪和缩放的图像坐标。当我滚动非常小的跳跃,它似乎是好的

我使用的库是jQcrop,我已经将这个库包装成一个函数,并在占位符更改时初始化它

比如,

function cropFrame(debugMsg) {
     console.log(debugMsg);
     $('img.cropImage').jQcrop({
         width: 175,
         height: 175,
         zoom : 60
      }).on('crop.jQcrop', function(e, data) {
         console.log('cropping');
         $('#avatarX').val(data.cropX);
         $('#avatarY').val(data.cropY);
         $('#avatarH').val(data.cropH);
         $('#avatarW').val(data.cropW);
      });
}

$('#upload').on('drop', function (e) {
    ..// code for dropped image
    cropFrame('On avatar drop change');
});

$(document).on('change', '#avatar', function(e) {
  ..// code for changed image
  setCropFrame('On avatar change');
});
我通过Safari调试iPhone时看到,即使我不触摸img.cropImage,也会触发“裁剪”控制台日志


有什么想法吗?

我认为问题在于jQcrop使用mousedown和mouseup事件处理程序,iOS将其解释为单击,请看问题在库中,函数附加到“文档”,当您将其更改为.cropFrame类名时,一切都很好。我花了一段时间调试,但找到了它。