2010-05-27 9 views
141

tengo el siguiente código de trabajo:jQuery equivalente de conseguir el contexto de un lienzo

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

¿Hay alguna manera de volver a escribir para usar $? Hacer esto falla:

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

aw ¿por qué el voto hacia abajo? – Claudiu

+6

Ahora tienes muchos votos favorables :) –

+0

Porque algunas personas olvidan que está bien hacer preguntas;) –

Respuesta

244

Probar:

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

jQuery expone el elemento DOM efectiva en los índices numéricos, donde se pueden realizar funciones/DOM JavaScript normales.

+0

Ni siquiera estaba buscando esto, pero me gustaría saber esto antes, OP eres un santo además de Matt. Me acabas de ahorrar un montón de tiempo. – munchschair

+0

wow. ja, primero pensé que me vino a la mente, y pensé que no funcionaría tan bien. – Eon

11

También he visto que a menudo es preferible utilizar .get (0) para hacer referencia a un objetivo jquery como elemento HTML:

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

Tal vez para ayudar a evitar cualquier referencia potenciales objeto nulo desde jquery devuelve null como una objeto, sino trabajar con el elemento de .get (0) no pueden fallar de manera silenciosa ... puede comprobar fácilmente si el lienzo fue encontrado por primera vez antes de que funciona .get (0) como

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

el guión antes de que encuentre "lienzo"

$(document).ready(function() { 
    ctx = $("#canvas"); 
}); 
Cuestiones relacionadas