Поскольку $('#interreg-iiia-old-counties-map')
возвращает объект jQuery, а метод drawImage
принимает объект Image
- функция jQuery ($
) возвращает объект jQuery, который оборачивает исходный элемент, чтобы обеспечить обычные функции jQuery, которые вы видите.
Вы можете получить базовый объект Image
, используя метод get
, но в этом случае будет проще использовать this
, что в контекстефункция обратного вызова, предоставленная функции load
, является исходным элементом $('#interreg-iiia-old-counties-map')
DOM.Другими словами,
ctx.drawImage(this, 0, 0);
здесь должно работать нормально.Вам также не нужно использовать скрытый элемент <img>
- с помощью new Image
вы можете получить изображение, аналогичное тому, что вы делаете здесь:
var img = new Image(),
canvas = document.getElementById('old-counties-image-canvas');
img.src = '/f/MISCELLANEOUS/old-map.jpg';
img.onload = function(){
if (canvas.getContext) {
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
}
};