2011-11-13 4 views
7

संबंधित है, लेकिन नहीं एक दुविधा में: जब मैं करने की कोशिश jQuery issue - #<an Object> has no method'प्रभाव' jsfiddle में ठीक काम करता है, लेकिन नहीं रहते कोड ([वस्तु वस्तु] कोई विधि 'प्रभाव' है)

मैं एक त्रुटि Object [object Object] has no method 'effect' हो रही है jquery (doc http://docs.jquery.com/UI/Effects/Highlight) में effect फ़ंक्शन का उपयोग करें। यह JSFiddle में ठीक काम कर रहा है लेकिन जब मैं क्रोम या आईई में साइट चलाता हूं तो यह त्रुटिपूर्ण हो जाता है। Div दिखाया गया है लेकिन प्रभाव कॉल एक त्रुटि फेंकता है।

लाइव संस्करण यहां पाया जा सकता: http://jsfiddle.net/jcollum/HK625/

एचटीएमएल

<a id=showHowThisWorks >How does this all work?</a>  
<div id="howThisWorks" style="display: none; ">  
    <p>It works fine</p> 
</div> 

और यह coffeescript:

$(document).ready -> 
    $('#howThisWorks').hide() 

    $('#showHowThisWorks').click -> 
    $div = $('#howThisWorks') 
    $div.toggle(); 
    $div.effect("highlight", {}, 10000) 
    return 

    return 

कौन सा जे एस में इस तरह दिखता है:

$(document).ready(function() { 
    $('#howThisWorks').hide(); 
    $('#showHowThisWorks').click(function() { 
     var $div; 
     $div = $('#howThisWorks'); 
     $div.toggle(); 
     $div.effect("highlight", {}, 6000); 
    }); 
    }); 

मैंने वैरिएबल का उपयोग करने के बजाय उस लाइन पर $ div को jquery selector बनाने का प्रयास किया है। मैंने $ div में $ div लपेटने की कोशिश की है। मुझे अभी भी पृष्ठ के वास्तविक संस्करण में त्रुटि मिल रही है। क्रोम और आईई 9 में वही परिणाम। स्पष्ट रूप से मुझे कुछ याद आ रहा है कि jquery ऑब्जेक्ट्स कैसे व्यवहार करते हैं।

+0

क्या 'टॉगल()' काम करता है? दूसरे शब्दों में, यदि आप 'प्रभाव()' कॉल को हटाते हैं, तो यह काम करता है? –

+0

@ डेव हां, टॉगल ठीक काम कर रहा है – jcollum

+0

मुझे उम्मीद थी कि मैंने अभी 'jQuery.fx.off' को याद किया है, इसलिए मैंने इसे गलत करने की कोशिश की लेकिन कोई नहीं। 'Div.fadeToggle (400) 'का उपयोग करके मैं जो चाहता हूं, लेकिन मैं अभी भी यह नहीं समझ सकता कि क्यों' प्रभाव 'काम नहीं करेगा। – jcollum

उत्तर

10

मुझे विश्वास है कि jQuery UI स्थानीय रूप से तैनात नहीं हो रहा है: सत्यापित करने के लिए फ़ायरबग/क्रोम आदि में चेक करें।

.toggle() कोर jQuery का हिस्सा है, .effect() jQuery UI का हिस्सा है: इसके लिए काम नहीं करने के लिए, jQuery UI मौजूद नहीं होना चाहिए।

+1

+1। सभी jQuery ऑब्जेक्ट्स में एक ही विधि संलग्न होती है, इसलिए त्रुटि jcollum के लिए एकमात्र स्पष्टीकरण यह देख रहा है कि कोई प्लगइन jQuery के लिए 'प्रभाव' विधि को परिभाषित नहीं करता है। –

+0

लगता है कि वह था। दस्तावेज़ों से स्पष्ट नहीं है जो पुस्तकालय में है ... उस पर शीर्ष पर यदि आप jquery ui (जिसे डिफ़ॉल्ट रूप से शामिल किया गया है) के संदर्भ को jsfiddle पर संदर्भ हटाते हैं, तो कोड अभी भी कोई त्रुटि नहीं है जो मैं देख सकता हूं (अद्यतन को मारने के बाद भी)। Blech। सहायता के लिए – jcollum

+0

धन्यवाद। – jcollum