it-swarm.asia

"Uncaught TypeError: a.indexOf ليس وظيفة" خطأ عند فتح مشروع الأساس الجديد

لقد أنشأت مشروع Foundation 5 جديد من خلال bash باستخدام foundation new my-project. عندما أقوم بفتح ملف index.html في Chrome ، يظهر خطأ Uncaught TypeError: a.indexOf is not a function في وحدة التحكم ، ويكون مصدره jquery.min.js:4.

لقد أنشأت المشروع باتباع الخطوات على موقع الأساس ، لكن لا يمكنني التخلص من هذا الخطأ. يبدو التأسيس و jQuery مضمنين ومتصلين بشكل صحيح في ملف index.html ، وملف app.js المرتبط يشمل $(document).foundation();

لا أحد يعرف ما الذي يسبب هذا الخطأ؟ وما الحل قد يكون؟

 Console error message screenshot

178
FreddieE

قد يحدث هذا الخطأ بسبب الأسماء المستعارة لحدث jquery مثل .load أو .unload أو .error التي تم إهمالها منذ jQuery 1.8. ابحث عن هذه الأسماء المستعارة في الكود واستبدلها بـ .on() لتسجيل المستمعين بدلاً من ذلك. مثال:

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

يصبح:

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

605
Daniel Llano

غالبًا ما يحدث هذا الخطأ بسبب غير متوافق jQuery الإصدارات. لقد واجهت نفس الخطأ في مستودع foundation 6. كان مستودع التخزين الخاص بي يستخدم jQuery 3 ، ولكن الأساس يتطلب إصدارًا أقدم. ثم غيرتها وعملت.

إذا نظرت إلى إصدار jQuery الذي تتطلبه تبعيات الأساس 5 فهو ينص على "jquery": "~2.1.0".

هل يمكنك تأكيد أنك تقوم بتحميل الإصدار الصحيح من jQuery؟

آمل أن يساعد هذا.

30
shaune

لقد واجهت هذه المشكلة أيضا. كنت أستخدم jquery.poptrox.min.js للصور والتكبير/التصغير وتلقيت رسالة خطأ:

"TypeError Uncaught: a.indexOf ليس وظيفة" error.

هذا لأنه لم يتم دعم هذا في الإصدار 3.3.1/jquery.min.js ، لذلك فإن الإصلاح البسيط لهذا هو تغييره إلى إصدار قديم 2.1.0/jquery.min.js.

بهذه الطريقة تمكنت من إصلاحها من أجلي.

16
Harshit Pant

أحد الأسباب المحتملة هو عند تحميل jQuery TWICE ، مثل:

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

لذلك ، تحقق من شفرة المصدر الخاصة بك وقم بإزالة تحميل jQuery مكرر.

9
T.Todua

الرجاء إضافة jQuery Migrate Plugin أدناه

<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>
4
Govarthanan Venunathan

أنا أستخدم jQuery 3.3.1 وتلقيت نفس الخطأ ، في حالتي ، كان عنوان URL Object مقابل سلسلة.

ما حدث كان ، أنني أخذت URL = window.location - الذي أعاد كائنًا. بمجرد أن قمت بتغييرها إلى window.location.href - عملت بدون خطأ e.indexOf.

1
Ricky Levi