I am dynamically adding X canvas elements to a page via jQuery like so:
$(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');
}
//...
});
Neither .append() nor .appendTo() have a callback, because they're supposed to happen immediately. Unfortunately, something about the canvas element doesn't happen immediately.
When I go to .getContext('2d') on one of the canvas elements it will fail with "getContext is not a function." This happens on FF 3.5 as well as Chrome.
If I assign and arbitrary event handler to the canvas elements like .click(), and use .getContext() in that event, it works perfectly.
How can I efficiently determine that a canvas is ready for manipulation?
I don't think you can use getContext() on the can variable.
If you're doing that, try can[0].getContext(). This will actually get the element object, not jQuery's.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With