2010-07-13 14 views
30

Cuando intento ejecutar esto en jQuery obtengo $ctx.getContext is not a function en firebug.

var $ctx = $('<canvas />', {width:'100', height:'100'}) 
$widget.append($ctx)          
$ctx.getContext('2d')          

¿Alguna idea de por qué me sale este error? ¿Cómo creo e inicializo dinámicamente un elemento canvas?

Respuesta

65

$ctx es un objeto jQuery. use $ctx[0].getContext('2d') para obtener el contexto

+0

'var $ ctx = $ ('', {ancho: '100', alto: '100'}) [0] .getContext ('2d')' –

+0

que asignaría $ ctx al contexto canvas que es ambos confusos y no, creo, para lo que va Evan ... él necesita recolectar el resultado de la llamada a getContext(), entonces usted está en lo correcto allí ... –

+2

@Evan, saltó el paso de añadir ahora .. para un trazador de líneas único intente '$ ('', {ancho: '100', alto: '100'}) .appendTo ($ widget) [0] .getContext ('2d')' pero ahora no lo hace tiene una variable que hace referencia a su objeto jquery. –

1

Si utiliza excanvas, necesitará usar lo siguiente para que funcione en IE.

var canvas = $ctx[0]; 

if (canvas.getContext == undefined) { 
    return G_vmlCanvasManager.initElement(canvas).getContext("2d"); 
} 

return canvas.getContext('2d') 
-5

Lo primero es lo primero, debe verificar si la siguiente línea existe y la parte superior del documento HTML.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Strict//EN"> 

esta línea como una condición expuesta de la política de procesamiento del navegador.

+2

¿Cómo se relaciona esto con ¿la pregunta? – NomadTraveler