У меня проблема с переключением между сенсорным мышью на windows устройствах с signature-pad . После касания мышка не работает, тоже самое в обратном режиме. Функция on после входа в функцию drawIt обнаруживает события касания или мыши и запускает startDrawing и остается в событии касания или события мыши. Вот функция drawIt:
function drawIt () {
currentPos = 'draw';
$(settings.typed, context).hide()
clearCanvas()
canvas.each(function () {
this.addEventListener('touchstart', function(e) {
e.preventDefault()
mouseButtonDown = true
initDrawEvents(e)
startDrawing(e, this)
})
})
canvas.bind('mousedown.signaturepad', function (e) {
e.preventDefault()
mouseButtonDown = true
initDrawEvents(e)
startDrawing(e)
})
$(settings.clear, context).bind('click.signaturepad', function (e) {
e.preventDefault();
output = [];
$(settings.output, context).val('')
clearCanvas();
})
$(settings.typeIt, context).unbind('click.signaturepad')
$(settings.typeIt, context).bind('click.signaturepad', function (e) { e.preventDefault(); typeIt() })
if (jsSavedSignature) {
$(settings.loadIt, context).unbind('click.signaturepad')
$(settings.loadIt, context).bind('click.signaturepad', function (e) {
e.preventDefault()
loadIt()
})
}
, а вот функция startDrawing:
function startDrawing (e, touchObject) {
if (touchable) {
touchObject.addEventListener('touchmove', onMouseMove, false)
} else {
canvas.bind('mousemove.signaturepad', onMouseMove)
}
drawLine(e, 1)
}
Могут быть некоторые различия между исходным плагином и плагином, размещенным здесь, но принцип та же.
После использования касания и изменения вкладок между Drawt it и Type it и попыткой рисовать мышью я получаю следующую ошибку:
Uncaught TypeError: Cannot read property 'addEventListener' of undefined
at startDrawing (jquery.signaturepad.js:343) //startDrawing function
at HTMLCanvasElement.<anonymous> (jquery.signaturepad.js:468) //drawIt function
Поскольку я JavaScript и Jquery стартер не мог решить проблему. Любая идея или помощь приветствуется. Спасибо!