所以我使用这个js代码:
var wrapper1 = document.getElementById("signature-pad-1"),
canvas1 = wrapper1.querySelector("canvas"),
signaturePad1;
var foremansiginput = document.getElementById("foremansiginput")
canvas1.addEventListener("mouseup", function(event) {
if (signaturePad1.isEmpty()) {
foremansiginput.value = '';
}
else {
foremansiginput.value = signaturePad1.toDataURL('image/png');
}
});
canvas1.addEventListener("click", function(event) {
if (signaturePad1.isEmpty()) {
foremansiginput.value = '';
}
else {
foremansiginput.value = signaturePad1.toDataURL('image/png');
}
});
canvas1.addEventListener("touchend", function(event) {
if (signaturePad1.isEmpty()) {
foremansiginput.value = '';
}
else {
foremansiginput.value = signaturePad1.toDataURL('image/png');
}
});
function clear1() {
signaturePad1.clear();
foremansiginput.value = '';
}
function resizeCanvas(canvas) {
var ratio = window.devicePixelRatio || 1;
canvas.width = 250;
canvas.height = 150;
}
resizeCanvas(canvas1);
signaturePad1 = new SignaturePad(canvas1);
$("#clear1").click(clear1);
除触摸/点按事件外,一切都工作得很好。我尝试过一系列不同的方法,谷歌告诉我"点击"应该像触摸或点击一样工作,所以从理论上讲,我甚至不应该遇到这个问题...
如何使点按/触摸事件与点击相同?
截至目前,当我在签名板上签名时,其他一切都有效。我有一个问题,如果我的最后一笔"笔画"点击它会清除输入的值。但是,我通过添加"点击"事件监听器。所以现在,使用鼠标,我点击它,它会添加到值,而不是清除它。但是,如果我点击/触摸(不拖动我的手指),它会清除该值。我需要停下来。我需要用户在没有清除输入值的情况下点击/触摸签名板。
如果它有帮助,我也会使用szimek的signature_pad.min.js来处理所有这些有趣的事情。
非常感谢任何帮助。提前谢谢。