Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Canvas和jQuery:为什么';t getContext()_Jquery_Html_Canvas - Fatal编程技术网

Canvas和jQuery:为什么';t getContext()

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')

我读过,但我的问题没有解决办法。如果我用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');

怎么回事?

您的代码无法工作,因为您试图获取的是上下文,而不是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