Javascript jQuery相当于获取画布的上下文
我有以下工作代码:Javascript jQuery相当于获取画布的上下文,javascript,jquery,html,canvas,Javascript,Jquery,Html,Canvas,我有以下工作代码: ctx = document.getElementById("canvas").getContext('2d'); 有没有办法用$重新编写它?这样做失败: ctx = $("#canvas").getContext('2d'); 尝试: jQuery在数字索引中公开了实际的DOM元素,您可以在其中执行正常的JavaScript/DOM功能。我还发现,通常更倾向于使用它。get(0)将jQuery目标引用为HTML元素: var myCanvasElem = $("#can
ctx = document.getElementById("canvas").getContext('2d');
有没有办法用$
重新编写它?这样做失败:
ctx = $("#canvas").getContext('2d');
尝试:
jQuery在数字索引中公开了实际的DOM元素,您可以在其中执行正常的JavaScript/DOM功能。我还发现,通常更倾向于使用它。get(0)将jQuery目标引用为HTML元素:
var myCanvasElem = $("#canvas").get(0);
也许有助于避免任何潜在的null对象引用,因为jquery作为对象返回null,但使用中的元素时。get(0)可能不会以静默方式失败。。。您可以很容易地检查画布是否是在之前首先找到的
脚本在找到“画布”之前工作 或者
if(typeof$('#canvas')==='undefined'){
var='';
$('body').append(画布);
}
setTimeout(function(){ctx=$('#canvas').get(0).getContext('2d');},500);
使用setTimeout是一种简单的方法,可以确保在画布元素完全创建并注册到DOM之前不会尝试调用它。这个问题是在您回答之前8年提出的。回答之前,请检查询问的日期!
var myCanvasElem = $("#canvas").get(0);
if( $("#canvas").length ) ctx = $("#canvas").get(0).getContext('2d');
else console.log('Error: Canvas not found with selector #canvas');
$(document).ready(function() {
ctx = $("#canvas");
});
try{
ctx = $('#canvas').get(0).getContext('2d');
}catch(e){
console.log('We have encountered an error: ' + e);
}
if( typeof $('#canvas') === 'undefined'){
var canvas = '<canvas id="canvas"><\/canvas>';
$('body').append(canvas);
}
setTimeout( function(){ ctx = $('#canvas').get(0).getContext('2d'); }, 500);