Warum Canvas funktioniert nicht mit jQuery Selector?
Habe ich einfaches Beispiel für die Verwendung von Leinwand, und dann sah ich, dass mein code nicht funktioniert, wenn ich die jQuery-Selektor.
Beispiele:
window.onload = function() {
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.fillRect(10,50,100,200);
};
window.onload = function() {
var canvas = $('#myCanvas');
var ctx = canvas.getContext('2d');
ctx.fillRect(10,50,100,200);
};
Also ich habe keine Ahnung, warum es passiert ist. Gibt es irgendwelche Einschränkungen, über es?
InformationsquelleAutor der Frage Mateusz Rogulski | 2012-07-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie diese aktualisierte version der jQuery-fiddle: http://jsfiddle.net/techfoobar/46VKa/3/
War das problem:
var canvas = $('#myCanvas')
bekommt man eine jQuery Ausgedehntes Objekt und nicht um eine native DOM-element-Objekt, das über member-Funktionen wie getContext etc. Für diese, die Sie brauchen, um das canvas-element mitvar canvas = $('#myCanvas')[0]
HINWEIS:
var canvas = document.getElementById('myCanvas');
entsprichtvar canvas = $('#myCanvas')[0]
InformationsquelleAutor der Antwort techfoobar
in Ihrem code, die Sie verwenden
canvas.getContext('2d');
sollte, aber escanvas[0].getContext('2d');
.Weil
getContext('2d')
funktioniert auf DOM-elementwovar canvas = $('#myCanvas');
Gegenzug einejQuery object
aber Knoten a DOM-element.Und zum abrufen einer DOM-element (hier canvas-element) von jQuery-Objekt, das Sie verwenden müssen
canvas[0]
.In der Sie JavaScript-code, die Sie verwenden:
document.getElementById('myCanvas');
gibt ein DOM-element. So,var canvas = $('#myCanvas');
canvas[0]
unddocument.getElementById('myCanvas');
gleich sind.Sie können auch ändern Sie die jQuery-code, wie:
InformationsquelleAutor der Antwort thecodeparadox
Dieser code...
Muss...
InformationsquelleAutor der Antwort alex
Verwenden Sie get-Funktion von jquery abzurufen canvas-element.
InformationsquelleAutor der Antwort Dev