2011-12-04 17 views
14

की विधि 'लागू' कॉल नहीं कर सकता है मैं एक परियोजना के लिए ब्रायन चेरन hoverIntent.js प्लगइन का उपयोग कर रहा हूं। यह एक महान प्लगइन है लेकिन यह jQuery 1.7.1 में टूटा हुआ प्रतीत होता है।jQuery होवरइन्टेंट: 'अनकॉट टाइप एरर: अपरिभाषित'

मैं इसे डीबग करने की कोशिश कर रहा हूं लेकिन मैं वहां से सबसे ज्यादा जावास्क्रिप्ट नहीं हूं। किसी को भी मुझे बता सकते हैं कि मैं क्या उसके कोड में देखने के लिए निम्नलिखित त्रुटि संदेश ठीक करने के लिए आवश्यकता हो सकती है:

Uncaught TypeError: Cannot call method 'apply' of undefined

है यही कारण है कि मेरी क्रोम कंसोल मुझसे कहता है। मुझे यकीन नहीं है कि क्या बदलना है।

प्लगइन में निम्न कोड पंक्ति जो स्ट्रिंग

return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};

संपादित

मैं ब्रायन की पूर्ण टिप्पणी की कोड के लिए लिंक पोस्ट करना चाहिए में apply शामिल नहीं है। यह यहाँ है: http://cherne.net/brian/resources/jquery.hoverIntent.js

संपादित 2

मेरे स्क्रिप्ट के रूप में इस प्रकार है

//#nav-main dropdown effects     
$('#nav-main ul li').hoverIntent(function() { 
    $(this).find('.dropdown').stop(true,true).slideToggle('500'); 
}); 
+0

सभी त्रुटि संदेशों के लिए धन्यवाद। लेकिन मूल रूप से हमें आपके स्क्रिप्ट कोड – noob

+0

@ मिचा की आवश्यकता है - इसे – Brian

+0

शामिल करने के लिए प्रश्न संपादित करें यह वही नहीं है। होवरइन्टेंट इस प्रभाव को होने से रोकता है (http://dreamstarstudios.com/screencasts/2011-12-04_0509.swf)। 'होवरइन्टेंट' के बिना ड्रॉपडाउन (क्योंकि उनमें से कई हैं) तेजी से कतार के रूप में आप पूरे होवर करते हैं। यदि एक ड्रॉपडाउन था तो आपका सुझाव अच्छा होगा, लेकिन कई लोगों के साथ, 'होवरइन्टेंट' बेहतर है। – Brian

उत्तर

29

मूल रूप से hoverIntent दो कार्य या एक वस्तु की आवश्यकता है।

यदि आप केवल एक समारोह में डालते हैं, तो यह आपके कार्य को ऑब्जेक्ट के रूप में उपयोग करने का प्रयास करेगा और आप कोई फ़ंक्शन लागू नहीं कर सकते! तो उपयोग करें:

$('#nav-main ul li').hoverIntent(function() { 
    $(this).find('.dropdown').stop(true,true).slideToggle('500'); 
}, function(){}); 
+4

विनम्रता की तरह कुछ भी नहीं है ... :) – Andreas

0

मुझे 'लंबन' प्लगइन के साथ एक ही समस्या थी। मैंने *jquery-1.10.2*. से *jquery-1.6.4* पर jQuery librery संस्करण बदल दिया और त्रुटि साफ़ हो गई।

1

यदि आप दो कार्यों के बजाय एक ऑब्जेक्ट का उपयोग कर रहे हैं, लेकिन "आउट" संपत्ति के बिना आपको एक ही त्रुटि होगी। मैंने किया। "आउट" को जोड़ना उसी तरह से ठीक करता है जैसे @noob पहले से ही उत्तर दिया गया है, बस अलग वाक्यविन्यास के साथ, इसलिए यह किसी की मदद कर सकता है।

$('#nav-main ul li').hoverIntent({ 
    over: function() { 
    $(this).find('.dropdown').stop(true,true).slideToggle('500'); 
    }, 
    out: function() {} 
}); 
संबंधित मुद्दे