नई नींव परियोजना को खोलते समय "बिना पढ़ा हुआ टाइपर्रर: a.indexOf फ़ंक्शन नहीं है" त्रुटि


250

मैंने बैश के माध्यम से एक नया फाउंडेशन 5 प्रोजेक्ट बनाया है, के साथ foundation new my-project। जब मैं Chrome में index.html फ़ाइल खोलता हूं Uncaught TypeError: a.indexOf is not a function, तो कंसोल में एक त्रुटि दिखाई देती है, जिसमें उद्भव होता है jquery.min.js:4

मैंने नींव साइट पर चरणों का पालन करते हुए परियोजना बनाई, लेकिन मैं इस त्रुटि से छुटकारा नहीं पा सकता हूं। फाउंडेशन और jQuery ऐसे दिखते हैं जैसे कि उन्हें शामिल किया गया है और index.html फ़ाइल में सही तरीके से लिंक किया गया है, और लिंक किया गया app.js फ़ाइल भी शामिल है$(document).foundation();

क्या किसी को पता है कि इस त्रुटि का कारण क्या है? और क्या समाधान हो सकता है?

कंसोल त्रुटि संदेश स्क्रीनशॉट

जवाबों:


820

यह त्रुटि jQuery इवेंट-एलियास की तरह हो सकती है .load(), .unload()या .error()कि सभी jQuery 1.8 के बाद से पदावनत हो गए हैं । अपने कोड में इन उपनामों के लिए लुकअप करें और उन्हें .on()इसके बजाय विधि के साथ बदलें । उदाहरण के लिए, निम्न पदावनत अंश को प्रतिस्थापित करें:

$(window).load(function(){...});

निम्नलिखित के साथ:

$(window).on('load', function(){ ...});

3
मेरे पास 2.2.1 @User के साथ नहीं था, लेकिन जैसे ही मैंने 3.3.1 पर स्विच किया मुझे यह बदलाव करना पड़ा।
कोडनेम

@ डैनियललानो तुम मेरा दिन बचाओ
ओवैस यूसुफी

1
यह मेरे लिए तय है।
रेडगैस्ट ब्राउन

@Crine $(function() {});दस्तावेज़ तैयार करने के लिए है, जो खिड़की लोड घटना के समान नहीं है। इसके अलावा, डॉक्टर तैयार अक्सर खिड़की के लोड से पहले आग।
रॉबर्ट

हेलो यार, क्या तुम मुझे बता सकते हो क्यों? इससे पहले कि यह संस्करण १.१२.३ के साथ काम कर रहा था और जब मैंने ३.४.१ में माइग्रेट किया तो यह काम करना बंद कर दिया
17:१२ पर आर्मंडो मार्स सोब्रीन्हो

35

यह त्रुटि अक्सर असंगत jQuery संस्करणों के कारण होती है । मुझे foundation 6रिपॉजिटरी के साथ एक ही त्रुटि का सामना करना पड़ा । मेरा भंडार उपयोग कर रहा था jQuery 3, लेकिन नींव के लिए पहले के संस्करण की आवश्यकता है। मैंने तब इसे बदल दिया और यह काम कर गया।

यदि आप नींव 5 पर निर्भर jQuery के संस्करण को देखते हैं तो यह निर्भर करता है "jquery": "~2.1.0"

क्या आप पुष्टि कर सकते हैं कि आप jQuery का सही संस्करण लोड कर रहे हैं?

आशा है कि ये आपकी मदद करेगा।


30

कृपया नीचे jQuery माइग्रेट प्लगइन जोड़ें

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://code.jquery.com/jquery-migrate-1.4.1.min.js"></script>

1
मैं पुष्टि करता हूं कि इसने इस मुद्दे को ठीक कर दिया है।
मोराद हमी

17

मैंने इस मुद्दे का भी सामना किया। मैं jquery.poptrox.min.jsइमेज पॉपिंग और जूमिंग के लिए उपयोग कर रहा था और मुझे एक त्रुटि मिली, जिसमें कहा गया था:

"बिना पढ़ा हुआ टाइपर: a.indexOf कोई फ़ंक्शन नहीं है" त्रुटि।

ऐसा इसलिए है क्योंकि indexOfइसमें 3.3.1/jquery.min.jsइतना आसान नहीं था कि इसे एक पुराने संस्करण में बदल दिया जाए 2.1.0/jquery.min.js

यह मेरे लिए तय है।


2
मैं 3.2.1 से 2.1.0 पर चला गया और यह काम कर गया। इसने मेरे लिए काम किया।
सिद्धार्थ

स्वागत हे ! @Siddharth
हर्षित पंत

1
कभी भी संस्करणों पर वापस न जाएं क्योंकि इससे बड़े पैमाने पर सुरक्षा मुद्दे हो सकते हैं।
अजय ताकुर

1
अगर ऐसा है: आप नीचे दिए गए कोड $ (विंडो) .लोड (फ़ंक्शन () {...}) को बदल सकते हैं; निम्नलिखित के साथ: $ (विंडो) .on ('लोड', फ़ंक्शन () {...}); यह भी काम करेगा! :)
हर्षित पंत

13

संभावित कारणों में से एक है जब आप jQuery TWICE लोड करते हैं , जैसे:

<script src='..../jquery.js'></script>
....
....
....
....
....
<script src='......./jquery.js'></script>

तो, अपने स्रोत कोड की जाँच करें और डुप्लिकेट jQuery लोड को हटा दें।


2
यह वर्डप्रेस के साथ होता है, अपने स्वयं के संस्करण को लोड करना, अगर आप अपनी तरफ से एक jquery संस्करण भी लोड कर रहे हैं।
ओल्उ

1

मैं उपयोग कर रहा हूं jQuery 3.3.1और मुझे वही त्रुटि मिली, मेरे मामले में, URL एक Objectबनाम स्ट्रिंग था।

जो हुआ, वह मैंने लिया URL = window.location- जो एक वस्तु लौटाता है। एक बार मैंने इसे बदल दिया है window.location.href- यह w / o e.indexOfत्रुटि का काम करता है।


0

मैंने इसका Jqueryउपयोग करके अपने प्रोजेक्ट के सही संस्करण को स्थापित करके इसे हल कियाnpm

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.