Переключение между касанием и мышью не работает на устройствах Windows Signature-Pad - PullRequest
0 голосов
/ 20 января 2020

У меня проблема с переключением между сенсорным мышью на 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 стартер не мог решить проблему. Любая идея или помощь приветствуется. Спасибо!

...