2011-11-21 14 views
19

मैं jQuery में कोड के इस sniplet हैअनुपयोगी setTimeout कॉल (तर्क-पीछे उद्धरण चिह्न अनुपलब्ध है?)

$element.parent().children().last().hide().show('slide', {direction : 'left'}, 700, function() { 
    $element.delay(2000, function() { 
     $element.parent().children().last().hide('slide', {direction: 'left'}, 700);    
     reload_table(question_number); 
     //delay ends here 
    }); 
}); 

delay के रूप में घोषित किया जाता है:

useless setTimeout call (missing quotes around argument?)

:

jQuery.fn.delay = function(time,func){ 
    return this.each(function(){ 
     setTimeout(func,time); 
    }); 
}; 

अब मैं त्रुटि मिलती है

FF3.x, फ़ायरफ़ॉक्स 6+ ठीक है। उस पर कोई विचार? यह क्यों हो रहा है?

उत्तर

7

पहले से ही एक jQuery-method delay मौजूद है और यह एक स्ट्रिंग (queueName) की अपेक्षा करता है और पैरामीटर के रूप में फ़ंक्शन नहीं करता है। विवादों से बचने के लिए अपनी देरी-विधि के लिए एक और नाम चुनें।

+0

कहने के लिए खेद है कि उसने इसे ठीक नहीं किया – kosta5

+16

यह स्वीकार्य उत्तर क्यों है, अगर यह ठीक नहीं हुआ है? –

+2

यह एक रहस्य है ... – Tebe

-2

समस्या फ़ायरफ़ॉक्स 3. में यह कुछ तत्वों को ठीक से => तत्व पूरी तरह से पेड़ में छोड़े गए और नजरअंदाज कर दिया है हैंडलिंग नहीं कर रहा है -> इसलिए अपने मूल समस्या

+5

बहुत ही अनुपयोगी और अनूठा जवाब। – Cyprus106

7

बस संदर्भ के लिए अगर किसी को इस सवाल पर लड़खड़ाती है और है एक संभावित उत्तर की तलाश में। मुझे प्रारंभिक पोस्टर के रूप में सटीक वही त्रुटि संदेश मिला क्योंकि मैं setTimeout तर्क आदेश को मिला रहा था।

यह:

setTimeout(25, function(){ 
    spotlight.intro.find('#intro').ellipsis(); 
}); 

... मेरे त्रुटि संदेश दे दी है। मैंने इस समारोह को बदल दिया:

setTimeout(function(){ 
    spotlight.intro.find('#intro').ellipsis(); 
}, 25); 

और मेरी समस्या हल हो गई।

17

मैं जब मैं

setTimeout(updateStatus(), 5000); 

बजाय

setTimeout(updateStatus, 5000); 
+0

ओपी पहले ही विधि को सही तरीके से कॉल कर रहा है! यह मुद्दा नहीं है। वह पहले तर्क में, पहले से ही एक समारोह में एक सूचक को गुजर रहा है। – gcb

10

मैं wsbaser से सहमत लिखा एक ही त्रुटि मिली। मैं समारोह को जानकारी भेजने के लिए आवश्यक अतिरिक्त उदाहरण था, और सादगी के लिए इस्तेमाल किया:

setTimeout(function(){ updateStatus(myData) } , 5000); 

तर्क एक समारोह और नहीं एक समारोह बुलाया जा रहा है की जरूरत है। फ़ायरफ़ॉक्स ने इस त्रुटि को पकड़ा, क्रोम इसे जाने दो।

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