2010-07-13 12 views
30

जब मैं jQuery में इसे निष्पादित करने का प्रयास करता हूं तो मुझे $ctx.getContext is not a function फ़ायरबग में मिलता है।

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

कोई विचार मुझे यह त्रुटि क्यों मिलती है? मैं कैनवास तत्व को गतिशील रूप से कैसे बना और प्रारंभ कर सकता हूं?

उत्तर

65

$ctx एक jQuery वस्तु है। संदर्भ का संदर्भ प्राप्त करने के लिए

+0

'var $ ctx = $ ('', {चौड़ाई: '100', ऊंचाई: '100'}) [0] .getContext ('2d')' –

+0

जो कैनवास संदर्भ $ ctx असाइन करेगा दोनों भ्रमित और नहीं, मेरा मानना ​​है कि, इवान क्या चल रहा है ... उसे getContext() कॉल के परिणाम एकत्र करने की आवश्यकता है - तो आप वहां सही हैं ... –

+2

@Evan, आप अब संलग्न कदम उठाए .. एक लाइनर के लिए '$ ('', {चौड़ाई: '100', ऊंचाई: '100'}) .appendTo ($ विजेट) [0] .getContext ('2d') 'लेकिन अब आप नहीं करते एक वैरिएबल है जो आपके jquery ऑब्जेक्ट का संदर्भ दे रहा है .. –

1

यदि excanvas का उपयोग करना है तो आपको निम्न का उपयोग करने की आवश्यकता होगी ताकि यह IE में काम करे।

var canvas = $ctx[0]; 

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

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

पहली बात सबसे पहले, आपको यह जांचना होगा कि निम्न पंक्ति मौजूद है या HTML दस्तावेज़ का शीर्ष है या नहीं।

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

ब्राउज़र के रूप में यह लाइन पॉलिसी उत्साहित स्थिति प्रदान करती है।

+2

यह कैसे संबंधित है प्रश्न? – NomadTraveler

संबंधित मुद्दे