Есть ли способ переписать его для использования $? Выполнение этого не выполняется:
ctx = $("#canvas").getContext('2d');
Ответ 1
Try:
$("#canvas")[0].getContext('2d');
jQuery предоставляет фактический элемент DOM в числовых индексах, где вы можете выполнять обычные функции JavaScript/DOM.
Ответ 2
Я также видел, что часто предпочитает использовать .get(0) для ссылки на объект jquery как элемент HTML:
var myCanvasElem = $("#canvas").get(0);
Возможно, чтобы избежать каких-либо потенциальных ссылок на нулевые объекты, поскольку jquery возвращает null как объект, но работа с элементом из .get(0) может не работать так тихо... Вы можете легко проверить, было ли ранее найдено холст. get (0) нравится
if( $("#canvas").length ) ctx = $("#canvas").get(0).getContext('2d');
else console.log('Error: Canvas not found with selector #canvas');
Ответ 3
try{
ctx = $('#canvas').get(0).getContext('2d');
}catch(e){
console.log('We have encountered an error: ' + e);
}