我是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");
答案 0 :(得分:2)
问题是你已经创建了 canvas 元素,但是在内存中还没有创建html的部分。为此,您需要将画布附加到您的身体。 只需在创建 canvas 元素后添加以下代码,它就可以正常工作。
$("body").append(gcanvas);