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