【发布时间】:2018-08-06 04:42:50
【问题描述】:
我有一个广泛使用 Keith Wood 出色的 jQuery UI 签名插件的网站。我还按照建议使用了 Touch Punch。这是一个非常普通的实现,但它已经坏了。我确定它以前可以正常工作。
我使用的是 Surface Pro(支持触控的平板电脑),签名对象工作正常,直到您滚动时出现两个问题:
1:任何触控笔笔触最终都会显示为点对点线(即直接从您放下触控笔的点到抬起触控笔的点),而不是捕捉两者之间的任何运动(例如曲线)
2:浏览器显示以下控制台错误: “[干预] 忽略了取消使用可取消 = false 的 touchstart 事件的尝试,例如因为滚动正在进行中且无法中断。”
有时它会在点击几下后开始工作,但它会时不时出现,通常相同的问题会在滚动后持续出现一段时间。
包括:
https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/south-street/jquery-ui.css
/public/front_css/jquery.signature.css
js/excanvas.js
https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js
https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js
/public/front_js/jquery.signature.min.js
/public/front_js/jquery.ui.touch-punch.min.js
一些代码:
function checkifallfieldsfilled()
{
var empty = false;
$('form > input').each(function()
{
if ($(this).val() == '')
{
empty = true;
}
});
$('form > select').each(function()
{
if ($(this).val() == '')
{
empty = true;
}
});
if (empty)
{
$('#btnProcess').attr('disabled', 'disabled');
} else
{
$('#btnProcess').removeAttr('disabled');
var sound = new Audio('/public/sounds/sound.mp3');
sound.play();
}}
$(function()
{
$('#page1_initials_b').signature({guideline: false,change: function(event, ui)
{
$('#ini_page1_initials_b').val($('#page1_initials_b').signature('toSVG'));
checkifallfieldsfilled();
}
});
$('#btnClear_page1_initials_b').click(function()
{
$('#page1_initials_b').signature('clear');
});
});
任何帮助将不胜感激!
【问题讨论】:
-
我也有类似的问题。当我们使用 Surface pro 时,签名不适用于触摸,而只能用于鼠标。但是我昨天发现有趣的是,当您在控制台中使用移动视图进入检查模式时,它工作正常。我也将感谢任何帮助
-
我不得不最终使用不同的 jQuery 签名插件来解决这个问题。我会检查我的源代码,让你知道我现在使用的是哪个库。
-
我确实找到了这个问题的解决方案,我会在解决方案中发布它
标签: javascript jquery touch signaturepad