2013-02-19 12 views
8

पर अपडेट करने में मैं jQuery-UI 1.8.2 का उपयोग करते समय ड्रैग करने योग्य प्लगइन ठीक काम कर रहा था, फिर मैं 1.10.1 में बदल गया। प्रमुख अंतर यह मैंने पाया सक्षम करने और प्लगइन को अक्षम करने में, मैं अब का उपयोग करने के लिए आवश्यक है कि था:jQuery-UI ड्रैगगेबल त्रुटि 'init से पहले विधियों को कॉल नहीं कर सकती', संस्करण 1.10.1

$this.draggable('option', 'disabled', true); 

लेकिन बस

$this.draggable('disable'); 

इस्तेमाल कर सकते हैं लेकिन तब मुझे एहसास हुआ कि वहाँ एक और समस्या है। मैं यह त्रुटि है, जो अपने पूरे कार्यक्रम को खराब करता मिलता है, और मैं इसे कैसे ठीक करने के लिए पता नहीं है:

Error: cannot call methods on draggable prior to initialization; attempted to call method 'enable'

इसे ठीक करने के लिए, मैं यह सुनिश्चित किया कि मैं हमेशा $this.draggable('enable'); किसी भी आगे के विकल्प से पहले फोन है, लेकिन यह नहीं था ' एक फर्क नहीं पड़ता। समस्या क्या है?

+2

आपकी त्रुटि कहता है '$ this.draggable (' सक्षम '); '$ this.draggable() से पहले कहा जाता है; '। क्या आपने निष्पादन प्रवाह की जांच की है? – LeGEC

+0

हाँ, मैंने प्रवाह को समझने में गलती की थी, मैं यह सुनिश्चित करने में सक्षम था कि मैंने यह $ 'draggable() 'किया था। – user961627

उत्तर

13

आपकी त्रुटि का अर्थ है: $this.draggable('enable');$this.draggable(); से पहले कहा जाता है।

अपने प्रोगाम के निष्पादन प्रवाह की जांच करें: सुनिश्चित करें कि आपने वास्तव में प्लगइन शुरू किया है (उदाहरण: $this.draggable(); कहा जाता है) इससे पहले कुछ भी करने की कोशिश कर रहा है।

+1

यह वास्तव में प्रश्न का उत्तर नहीं है। यह एक भ्रमित उदारवादी सवाल है। मुझे लगता है कि इसे सीधे उत्तर देने के लिए दोहराया जाना चाहिए। – Goodword

1

मैं ने वही समस्या थी जब 1.9.1

var tr$ = $('<tr>', { draggable: 'true' }); 

लिए jQuery 1.6.1 से उन्नयन कर फेंक दिया "खींचने योग्य पूर्व पर तरीकों कॉल नहीं कर सकते प्रारंभ करने के लिए"

करने के लिए संशोधित:

var tr$ = $('<tr>'); 
if(!('draggable' in document.createElement('span'))) { 
    //handle old browsers     
} else { 
    tr$.attr('draggable', 'true'); 
} 

अगर किसी और को इसे इस तरह से देखने में मदद मिलती है तो पोस्टिंग।

3
क्या LeGEC कहा पर विस्तार

...

$this.draggable(); से पहले $this.draggable('enable');

मेरे लिए समाधान इस तरह घटना श्रृंखला के लिए होगा बुलाया जा रहा है ...

$this.draggable().draggable('disable'); 

पहले की घोषणा कि $ यह एक ड्रैग करने योग्य है, फिर यह घोषणा कर रहा है कि यह

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