Canvas和jQuery:为什么';t getContext()
我读过,但我的问题没有解决办法。如果我用jQuery创建画布,然后通过Canvas和jQuery:为什么';t getContext(),jquery,html,canvas,Jquery,Html,Canvas,我读过,但我的问题没有解决办法。如果我用jQuery创建画布,然后通过document.getElementById()调用getContext('2d')调用它,它就可以工作了。像这样: var ctx = $('<canvas />') .attr({ id: 'canvasMenuSmall', width: '500px', height: '500px' }) .appendTo('body')
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');
怎么回事?您的代码无法工作,因为您试图获取的是上下文,而不是DOM元素。不要将
getContext
链接到appendTo
,而是使用jQuery获取元素
工作说明将是:
$().appendTo(#place”)[0].getContext()
而不是
$().appendTo(#place”).getContext()
您的代码无法工作,因为您试图获取的是上下文,而不是DOM元素。不要将getContext
链接到appendTo
,而是使用jQuery获取元素
工作说明将是:
$().appendTo(#place”)[0].getContext()
而不是
$().appendTo(#place”).getContext()
.getContext('2d')
不是与jQuery相关的东西。。。它是dom对象的一种方法
.getElementById()
返回一个dom元素,这就是它在那里工作的原因。.getContext('2d')
不是与jQuery相关的东西。。。它是dom对象的一种方法
.getElementById()
返回一个dom元素,这就是它在那里工作的原因。我在这里找到了答案:我只需要使用get(0)
就可以得到真正的dom对象。我个人会将getContext()
放在自己的语句中,以提高可读性。.get(0)。getContext('2D')
可以在appendTo
之后附加到原始查询的末尾,尽管这在jQuery链的末尾有点难读,imoho。我只想做:varctx=。。;ctx.get(0.getContext('2D')代码>@user2864740是的,这是奥利维尔在他的第一条评论中说的。我知道他在说什么。我编辑了这个问题以考虑这两个选项。使用jq[0]
或jq.get(0)
,而不是jq.get()[0]
。我在这里找到了答案:我只需要使用get(0)
来获取真正的DOM对象。是的,这同样有效。我个人会将getContext()
放在自己的语句中,以提高可读性。.get(0)。getContext('2D')
可以在appendTo
之后附加到原始查询的末尾,尽管这在jQuery链的末尾有点难读,imoho。我只想做:varctx=。。;ctx.get(0.getContext('2D')代码>@user2864740是的,这是奥利维尔在他的第一条评论中说的。我知道他在说什么。我对问题进行了编辑,以允许两种选择。使用jq[0]
或jq.get(0)
,而不是jq.get()[0]
。
var ctx =
$('<canvas />')
.attr({
id: 'canvasMenuSmall',
width: '500px',
height: '500px'
})
.appendTo('body')
.getContext('2d'); // error raised