在我的viewmodel构造函数中,我这样做:
$(窗口).resize(resizeCanvas);
function resizeCanvas() {
var canvas = $('#mycanvas');
canvas.attr('width', 333); //max width
canvas.attr('height', 444); //max height
var context = canvas.getContext('2d');
}
缺少所有与画布或上下文相关的方法,而是得到了画布html元素,为什么呢?
$("#mycanvas")
返回引用您的画布DOM元素的jQuery对象。它实际上并不返回canvas元素本身。像数组一样使用jQuery对象来获取实际的canvas对象:
canvas.length === 1; // jQuery object refers to only a single element
var canvasElement = canvas[0]; // get actual canvas element
var context = canvasElement.getContext('2d');
对变量采用命名约定是一个好主意,以便知道它们是jQuery对象还是DOM元素。我喜欢$
为我的jQuery变量添加前缀:
var $canvas = $("#mycanvas");
$canvas.attr(...);
var canvas = $canvas[0];
var context = canvas.getContext('2d');
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句