jQuery动态画布创建,$ctx.getContext不是函数
Posted
技术标签:
【中文标题】jQuery动态画布创建,$ctx.getContext不是函数【英文标题】:jQuery dynamic canvas creation, $ctx.getContext is not a function 【发布时间】:2011-03-15 10:59:36 【问题描述】:当我尝试在 jQuery 中执行此操作时,我在 firebug 中得到 $ctx.getContext is not a function
。
var $ctx = $( '<canvas />', width:'100', height:'100' )
$widget.append($ctx)
$ctx.getContext('2d')
知道为什么会出现此错误吗?如何动态创建和初始化画布元素?
【问题讨论】:
【参考方案1】:首先,您需要检查以下行是否存在以及html文档的顶部。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Strict//EN">
此行作为浏览器渲染策略的执行条件。
【讨论】:
这与问题有什么关系?【参考方案2】:如果使用 excanvas,您需要使用以下内容才能在 IE 中运行。
var canvas = $ctx[0];
if (canvas.getContext == undefined)
return G_vmlCanvasManager.initElement(canvas).getContext("2d");
return canvas.getContext('2d')
【讨论】:
【参考方案3】:$ctx
是一个 jQuery 对象。使用$ctx[0].getContext('2d')
获取上下文
【讨论】:
var $ctx = $( '<canvas />', width:'100', height:'100' )[0].getContext('2d')
这将分配 $ctx 画布上下文,这既令人困惑又不是,我相信埃文的目的......他确实需要收集 getContext() 调用的结果 - 所以你是对的......
@Evan,您现在跳过了附加步骤.. 对于单个班轮,请尝试 $( '<canvas />', width:'100', height:'100' ).appendTo($widget)[0].getContext('2d')
但现在您没有引用您的 jquery 对象的变量..
@scott,是 Evan 发表了评论 ;)
@EvanCarroll - 你可能想考虑接受这个答案(即使它已经两年了)以上是关于jQuery动态画布创建,$ctx.getContext不是函数的主要内容,如果未能解决你的问题,请参考以下文章