Я так рад, что это сработало для вас, очень странно, что второй не работает. Я был бы очень признателен за проверку этого ответа как правильного, он помогает мне, а также говорит всем, что ситуация разрешена :)

учаю необычную ошибку:

ctx_wrap.fillStyle не является функцией

на этой линии:

ctx_wrap.fillStyle('#b8b8b8');

здесь:

...
this.paint = function() {
    self.path(ctx_wrap);
    if (!isOver) {
        ctx_wrap.fillStyle('#b8b8b8');
    } else {
        ctx_wrap.fillStyle('#d6d6d6'); 
    }
    ctx_wrap.fill()
    ctx_wrap.stroke();
};
...

Странно то, что, если я закомментирую эту строку, строка под ней работает. Эти две строки почти идентичны, но первая выдает ошибку, а вторая работает:

ctx_wrap.fillStyle('#b8b8b8');
ctx_wrap.fillStyle('#d6d6d6');

Почему первая строка выдает ошибку?

Ответы на вопрос(1)

Ваш ответ на вопрос