动态id画布上的jquery getcontext

时间:2013-11-19 16:21:22

标签: javascript jquery dynamic canvas

我是jQuery和JavaScript的新手。我正在尝试为画布创建动态id,然后获取其上下文,这是代码

$.fn.wm= function(cfg){
var doc = this,
gcanvas = {},
gctx = {},
imgQueue = [],
className = "wm-mid",
wm = false,
wmPosition = "center",
wmPath = "wm.png?"+(+(new Date())),
opacity = (255/(100/50)), // 50%
idcanvas =  Math.random().toString(36).substring(7), 
  initCanvas = function(){
  gcanvas = $('<canvas id="' + idcanvas +'"  style="display:none;" > </canvas>');
  idcanvas = "#" + idcanvas;
  $('body').append(gcanvas);
  gctx = $('"'+ idcanvas +'"').getContext("2d");
    },
initWm = function(){
        wm = $('<img src="'+wmPath+'" />');
        ......

但是当我尝试在主体上添加画布时我遇到了这个错误:

  

错误:语法错误,无法识别的表达式:“#C72”抛出新的错误(   “语法错误,无法识别的表达式:”+ msg);

是否有可能做我想做的事情?

修改

我发现错误,在此行更改

gctx = $('"'+ idcanvas +'"').getContext("2d");

这个

gctx = $('#'+ idcanvas ).get(0).getContext("2d");

1 个答案:

答案 0 :(得分:2)

问题是你已经创建了 canvas 元素,但是在内存中还没有创建html的部分。为此,您需要将画布附加到您的身体。 只需在创建 canvas 元素后添加以下代码,它就可以正常工作。

$("body").append(gcanvas);