2010-05-27 10 views
141

Ho il seguente codice di lavoro:jQuery equivalente di ottenere il contesto di una tela

ctx = document.getElementById("canvas").getContext('2d'); 

Esiste un modo per riscrivere in modo da utilizzare $? In questo modo non riesce:

ctx = $("#canvas").getContext('2d'); 
+11

aw why down? – Claudiu

+6

Ora hai un sacco di upvotes :) –

+0

Perché alcune persone dimenticano che va bene fare domande;) –

risposta

244

Prova:

$("#canvas")[0].getContext('2d'); 

jQuery espone l'elemento effettivo DOM in indici numerici, in cui è possibile eseguire le normali funzioni/DOM JavaScript.

+0

Non stavo nemmeno cercando questo, ma vorrei saperlo prima, OP tu sei un santo così come Matt. Mi hai appena salvato un sacco di tempo. – munchschair

+0

wow. hah, il primo pensiero mi è venuto in mente, e ho pensato che non avrebbe funzionato così bene. – Eon

11

Ho anche visto che è spesso preferito usare .get (0) per fare riferimento a un target jQuery come elemento HTML:

var myCanvasElem = $("#canvas").get(0); 

Forse per evitare eventuali riferimenti agli oggetti nulli in quanto jQuery restituisce null come oggetto, ma lavorando con l'elemento da .get (0), non possono fallire in modo silenzioso ... si può facilmente controllare se la tela è stata trovata prima funziona .get (0) come

if($("#canvas").length) ctx = $("#canvas").get(0).getContext('2d'); 
else console.log('Error: Canvas not found with selector #canvas'); 
-1

lo script prima che trovi "canvas"

$(document).ready(function() { 
    ctx = $("#canvas"); 
}); 
Problemi correlati