我已阅读this和this,但我的问题无法解决。如果我使用jQuery创建一个画布,然后通过document.getElementById()
调用它,我可以调用getContext('2d')
并且它可以工作。像这样:
var ctx =
$('<canvas />')
.attr({
id: 'canvasMenuSmall',
width: '500px',
height: '500px'
})
.appendTo('body');
var c=document.getElementById("canvasMenuSmall"),
ctx=c.getContext('2d');
但是,如果我尝试立即在对象上调用getContext('2d')
,它就无法处理错误Uncaught TypeError: undefined is not a function
:
var ctx =
$('<canvas />')
.attr({
id: 'canvasMenuSmall',
width: '500px',
height: '500px'
})
.appendTo('body')
.getContext('2d'); // error raised
怎么来的?
答案 0 :(得分:4)
您的代码无效,因为您尝试使用getContext of jQuery,而不是DOM元素。不要将getContext
链接到appendTo
,而是使用jQuery来获取元素。
工作声明将是
$().appendTo("#place")[0].getContext()
而不是
$().appendTo("#place").getContext()
答案 1 :(得分:0)
.getContext('2d')
不是jQuery相关的东西......它是一个dom对象的方法。
.getElementById()
会返回一个dom元素,这就是它在那里工作的原因。