2013-04-07 10 views
8

एक jQuery फ्लोट ग्राफ़ को इस तरह से नष्ट करने का सही तरीका क्या है जो सभी ईवेंट हैंडलर को साफ करेगा और परिणामस्वरूप स्मृति रिसाव न हो?jQuery फ़्लोट ग्राफ़ को नष्ट करना

ऐसा लगता है flot कुछ लाश (उर्फ डोम पेड़ पृथक)

+0

'$ .plot ('# yourFlotDiv', {}, {}); 'इसे कहीं पढ़ें। बिल्कुल याद नहीं है कहां। – Ejaz

उत्तर

3

पीछे छोड़ जाता है आप तो jquery off विधि का प्रयास ईवेंट हैंडलर्स को निकालना चाहते हैं। फ़्लोट ग्राफ को साफ़ करने के लिए

। आप div खाली कर सकते हैं।

$('#yourFlotDiv').empty(); 
+0

jQuery.off() पर कौन से तर्क पारित किए जाने चाहिए? – thecountofzero

+0

@thecountofzero $ ("# yourFlotDiv")। ("YourEventHandlerTORemove"); अधिक जानकारी के लिए यह http://api.jquery.com/off/ –

+0

देखें, यह सुनिश्चित करने के बारे में बात कर रहा हूं कि फ़्लोट अपने सभी ईवेंट हैंडलर को साफ़ कर देता है और बनाए गए सभी डीओएम तत्वों को हटा देता है। – thecountofzero

5

आप एपीआई डॉक्स पढ़ा है, वहाँ एक बंद विधि उसके लिए आपको

shutdown() 

Cleans up any event handlers Flot has currently registered. This 
is used internally. 

जैसे को साफ है।

var plot = $.plot($("#yourDiv"), options) 

plot.shutdown() 
+0

यह सही है और काम करता है। – MirroredFate

4

लोग हैं, जो भविष्य में यहाँ आया के लिए, वहाँ अब एक destroy समारोह है कि शटडाउन कॉल करता है और कैनवास तत्व को दूर करता है। यह किसी कारण के लिए एपीआई में undocumented है, लेकिन कोड में उपलब्ध है: ग्राफ़

var placeholder = $("#FlotDiv"); 
placeholder.unbind(); //Remove a previously-attached event handler from the elements. 
placeholder.empty(); 
मामले में

इसके अलावा, आप विशिष्ट घटना निकल को यह जाने का रास्ता है इच्छा

var flot = $("#FlotDiv").data('plot') 
if (flot) // If it's destroyed, then data('plot') will be undefined 
    flot.destroy(); 
0

flot निकालने के लिए :

$("#foo").unbind("click"); 

अधिक जानकारी के लिए this बाहर की जाँच करें।

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