javascript - 如何检测 Canvas 何时准备好进行操作?

标签 javascript jquery html canvas

我正在通过 jQuery 将 X canvas 元素动态添加到页面,如下所示:

$(document).ready(function() { 
    for(i=0;i<4;i++) {
        var can = $(document.createElement("canvas"))
                   .attr("id","table"+i)
                   .addClass("table")
                   .attr("width",640)
                   .attr("height",480)
                   .appendTo('#container');   
    }

    //...
});

.append().appendTo() 都没有回调,因为它们应该立即发生。不幸的是,关于 canvas 元素的某些事情不会立即发生。

当我转到其中一个 Canvas 元素上的 .getContext('2d') 时,它将失败并显示“getContext 不是函数”。这发生在 FF 3.5 和 Chrome 上。

如果我将任意事件处理程序分配给 Canvas 元素,如 .click(),并在该事件中使用 .getContext(),它会完美运行。

如何有效地确定 Canvas 是否已准备好进行操作?

最佳答案

我认为您不能在 can 变量上使用 getContext()

如果您这样做,请尝试 can[0].getContext()。这实际上将获取元素对象,而不是 jQuery 的对象。

关于javascript - 如何检测 Canvas 何时准备好进行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1616072/

相关文章:

javascript - JS 在函数的函数内部调用全局函数

jquery - 在 jQuery 的 .text() 返回的长输出中插入逗号或空格

javascript - 只有 jQuery 函数语法适用于特定场景

javascript - jQuery : Copy masked password value correctly

html - 嵌套的 DIV 和高度

javascript - 使用 redux 工具包时出现错误 "A non-serializable value was detected in the state"- 但不是普通的 redux

javascript - 使用 jquery 屏蔽电话号码 - 具有三个输入字段

javascript - 如何设置 Angular 文本 block 的样式

javascript - 了解 Ember.Evented - 如何从 View 监听 Controller 中触发的事件?

html - 如何使图像居中并位于 <h1> 标签的顶部