2013-08-02 5 views
49

मैं एक कुकी jQuery का उपयोग कर स्थापित करने के लिए कोशिश कर रहा हूँ नहीं है:

$.cookie("testCookie", "hello"); 
alert($.cookie("testCookie")); 

लेकिन जब मैं अपने पृष्ठ लोड, मैं प्राप्त त्रुटि "$ .cookie कार्य नहीं है"। यहां मुझे पता है:

  • मैंने jQuery कुकी प्लगइन here डाउनलोड किया है।
  • मैं jQuery और फिर कुकी प्लगइन से लिंक कर रहा हूं।
  • दोनों jQuery और jQuery.cookie 200 OKs के साथ सही ढंग से लोड हो रहे हैं।

मैं कई अन्य उत्तर (here और दूसरों के बीच here) पर ध्यान दिया है, जो करने के लिए ज्यादातर लोगों cookie.js फ़ाइल का नाम बदलने का सुझाव दिया। मैंने अपनी कुकी फ़ाइल "jquery.cookeee.js" का नाम बदल दिया है, लेकिन परिणाम समान हैं।

यहां क्या हो रहा है पर कोई विचार है?

यह मदद करता है, मैं MVC में एक वेब अनुप्रयोग बनाने रहा 4.

+0

अपने ब्राउज़र के कंसोल में कोई अपवाद? हो सकता है कि jQuery का आपका संस्करण jQuery कुकी प्लगइन के आपके संस्करण के लिए सही नहीं है – Ian

+2

क्या आप jQuery को दो बार शामिल कर रहे हैं? (सबसे अधिक संभावना हां)। अन्यथा, आप या तो $ .noConflict() का उपयोग कर रहे हैं, या आप एक और .js फ़ाइल शामिल कर रहे हैं जो $ ओवरराइड करता है। –

+0

बस "$। कुकी एक समारोह नहीं है"। और कुछ नहीं। – ElliotSchmelliot

उत्तर

92

$.cookie is not a function समस्या पर किसी और stumbles, यहाँ हर संभव समस्याओं/समाधान मैं सामने आने वाले हैं, तब:

  • कुकी प्लगइन डाउनलोड नहीं किया गया था। $.cookie एक मानक jQuery फ़ंक्शन नहीं है और प्लगइन को here डाउनलोड करने की आवश्यकता है। जहां आवश्यक हो वहां उपयुक्त <script> टैग शामिल करना सुनिश्चित करें (अगला देखें)।
  • कुकी स्क्रिप्ट सहित, jQuery FIRST, फिर कुकी प्लगइन शामिल करना सुनिश्चित करें।

यानी अपने सिर शामिल हो सकता है:

<script src="~/Scripts/jquery-2.0.3.js" type="text/javascript"></script> 

और फिर

<script src="~/Scripts/jquery_cookie.js" type="text/javascript"></script> 
  • कुछ मामलों में, कुछ करने के लिए फ़ाइल है कि ".cookie" शामिल नहीं है का नाम बदलने के लिए इस तय किया है स्पष्ट रूप से वेब सर्वर के मुद्दों के कारण त्रुटि। डिफ़ॉल्ट रूप से, डाउनलोड की गई स्क्रिप्ट को "jquery.cookie.js" शीर्षक दिया जाता है लेकिन ऊपर दिखाए गए अनुसार "jquery_cookie.js" जैसे किसी चीज़ को नाम देने का प्रयास करें। इस समस्या पर अधिक जानकारी here है।
  • आखिरकार (यह मेरी समस्या थी), सुनिश्चित करें कि आप jQuery को एक से अधिक बार शामिल नहीं कर रहे हैं। यदि आप हैं, तो यह संभव है कि 1. jQuery सही ढंग से लोड हो जाता है 2. कुकी प्लगइन सही ढंग से लोड होता है 3. अंततः jQuery का दूसरा समावेशन पहले ओवरराइट करता है और कुकी प्लगइन को नष्ट कर देता है।

एएसपी.NET एमवीसी परियोजनाओं का उपयोग करने वाले किसी भी व्यक्ति के लिए, डिफ़ॉल्ट जावास्क्रिप्ट बंडल समावेशन से सावधान रहें; कभी-कभी उन्हें ढूंढना मुश्किल हो सकता है। JQuery का मेरा दूसरा समावेशन @Scripts.Render("~/bundles/jquery") लाइन के तहत मेरे वैश्विक लेआउट पृष्ठों में से एक के भीतर था। मैं व्यक्तिगत रूप से बंडलों को प्रतिपादित नहीं करना चाहता हूं और आवश्यकतानुसार जावास्क्रिप्ट से लिंक करना पसंद करता हूं।

इस पर सहायता के लिए Kevin B पर चीयर्स और विशेष धन्यवाद।

+10

मैं एक ढांचे का उपयोग कर रहा था, और समस्या jQuery के एकाधिक समावेशन के साथ था। बहुत धन्यवाद !!! – jrierab

+0

यह गिटूब पर कहता है कि प्लग इन अब समर्थित नहीं था इसलिए मैंने फ़ाइल को नए संस्करण (2.1.0 मुझे लगता है) में अपग्रेड किया और यह काम नहीं किया है, इसलिए आपको पुराने संस्करण का उपयोग करना होगा जो यह उत्तर लिंक करता है। –

+1

मेरे लिए jQuery को एक से अधिक बार –

1

जांचें कि आपने स्क्रिप्ट को हेडर में शामिल किया है, न कि पृष्ठ के पाद लेख में।वर्डप्रेस में विशेष रूप से इस एक काम नहीं किया:

wp_register_script('cookie', get_template_directory_uri() . '/js/jquery.cookie.js', array(), false, true); 

पिछले पैरामीटर पाद लेख में स्क्रिप्ट सहित और झूठे (डिफ़ॉल्ट) के लिए बदला जा करने के लिए आवश्यक इंगित करता है। जिस तरह से यह काम करता है:

wp_register_script('cookie', get_template_directory_uri() . '/js/jquery.cookie.js'); 
11

jquery के लिए इस कुकी प्लगइन को जोड़ें।

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> 
+0

जोड़ा गया था, यह केवल तभी काम करता था जब मैं आपको अपनी WordPress थीम में 'wp_head()' फ़ंक्शन के बाद स्क्रिप्ट देता हूं। – Rishabh

13

jQuery कुकी की old version, पदावनत किया गया है, इसलिए यदि आप त्रुटि हो रही है:

$.cookie is not a function 

आप new version नवीनीकृत करना चाहिए।

नए संस्करण के लिए एपीआई भी अलग होता है - बल्कि

$.cookie("yourCookieName"); 

का उपयोग करने से आप

Cookies.get("yourCookieName"); 
+0

मैं अपनी jquery को 3.3.1.js. में अपग्रेड करता हूं लेकिन यह ठीक से काम नहीं करता है। 'अनचाहे संदर्भ त्रुटि: कुकीज परिभाषित नहीं है' उसी पंक्ति पर उत्पन्न होता है जिसे मैंने बदल दिया। क्या कोई मेरे साथ समान है? –

2

का उपयोग आप पहली बार जोड़ना चाहिए चाहिए jquery.cookie.js फिर अपने js जोड़ने या jQuery का उपयोग कर रहे हैं जहां कि समारोह।

जब ब्राउज़र वेबपृष्ठ को लोड पहले यह इस jquery.cookie.js लोड करता है और फिर आप js या jQuery और अब के बाद कि समारोह उपयोग

0

के लिए उपलब्ध है मैं भी इस समस्या थी। मुझे पता चला कि एक $ (दस्तावेज़) है। पहले से ही फ़ंक्शन जिसमें शरीर के अंदर एक स्क्रिप्ट टैग में एक $। कुकी शामिल था, जबकि कुकी जेएस सिर में लोड होने के कारण नीचे के रूप में jQuery (दस्तावेज़) के परिणामस्वरूप कुकी के पहले संसाधित हो रहा था। प्लगइन लोडिंग खत्म हो सकता है।

मैं $ (document) .ready स्क्रिप्ट से पहले शरीर में कुकी प्लगइन लोड स्क्रिप्ट चले गए और त्रुटि गायब हो गया: डी

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