2013-08-09 3 views
0

Я пытаюсь обновить параметры на подписи Pad, но он, похоже, не работает.обновления параметров на плагине подписи подписи

Опция, которую я пытаюсь обновить, это цвет пера, я создал кнопку, которая когда-то нажала, должна обновить объект и изменить цвет пера.

var options = { 
    drawOnly: true, 
    defaultAction: 'drawIt', 
    validateFields: false, 
    lineWidth: 0, 
    output: null, 
    sigNav: null, 
    name: null, 
    typed: null, 
    clear: 'input[type=reset]', 
    typeIt: null, 
    drawIt: null, 
    typeItDesc: null, 
    drawItDesc: null, 
    penColour: '#000', 
}; 

var api = $('form').signaturePad(options); 

$('.green').click(function(){ 
    api.clearCanvas(); 
    $.fn.signaturePad.penColour = '#00FF00'; 
}); 

любые идеи?

+0

Вы уверены, что с помощью '$ .fn .signaturePad.penColour' - правильный способ изменить цвет пера? И вы уверены, что значение '00FF00' находится в правильном формате (например,' # 00FF00')? Кроме того, удалите последнюю запятую в 'options'. – matthewpavkov

+0

Также вы подтвердили, что '.click()' происходит, когда вы ожидаете этого? – matthewpavkov

+0

Это то, как он говорит, чтобы сделать это в документации @matthewpavkov и да, функция щелчка работает нормально, поскольку работает метод прозрачного холста – serps

ответ

0

Вы можете указать новые параметры при регенерации подписи.

Документация: http://thomasjbradley.ca/lab/signature-pad/#api

Использование API:

$('.green').click(function() { 
    // Store the signature JSON object so you can regenerate 
    var sig = api.getSignatureString(); 

    api.clearCanvas(); 

    // Regenerate the signature with the updated option 
    api.updateOptions({ penColour: '#00FF00' }).regenerate(sig); 
}); 

Или, вы можете просто восстановить все это, без API:

$('.green').click(function(){ 
    // This is a JSON formatted signature 
    var sig = api.getSignatureString(); 
    api.clearCanvas(); 
    var options = { 
     penColour: '#00FF00' 
     /* other options */ 
    } 

    $('form').signaturePad(options).regenerate(sig); 
});  
+0

Спасибо! Я использовал ваш предыдущий пример, используя $ ('form'). SignaturePad (options) .regenerate(); и он работает именно так, как мне это нужно :) – serps