برخورد با خطای "jQuery is not defined" می تواند تعجب برانگیز و خاص باشد. تفاوتی ندارد که با خطاهای وردپرس آشنایی داشته باشید یا خیر، این خطا یکی از گیج کننده ترین خطاهای موجود است. خوشبختانه، این یک خطای رایج است و سایت هایی که از jQuery استفاده می کنند در برخی موارد با آن روبرو می شوند. ممکن است سایت شما دچار مشکل شده باشد و وقتی console مرورگر خود را بررسی می کنید، خطای "jQuery is not defined" را مشاهده کنید. اولین قدم یافتن خطا و مرحله بعدی، حل آن است. از آنجا که این مورد یکی از ابتدایی ترین خطاهای جاوا اسکریپت می باشد، رفع آن نباید زیاد طول بکشد.
در این مقاله، مواردی که باید برای رفع سریع خطا بدانید به شما معرفی خواهد شد. در مرحله اول به معنای خطا و دلیل ایجاد آن پرداخته خواهد شد که اطلاعات مهمی برای جلوگیری از وقوع این خطا در اختیارتان قرار داده می شود. در نهایت، چند مرحله که می توانید برای برطرف کردن آن انجام دهید نیز به شما معرفی می گردد.
خطای "jQuery is not defined" چیست؟
بررسی اجمالی بخش console در مرورگر، به شما کمک می کند که متوجه این خطا شوید. اما اطلاعات کاملی در اختیار شما قرار نمی دهد. در واقع باید بدانید "jQuery is not defined" به چه معنا است؟
به زبان ساده، این خطا سعی دارد به شما بگوید که بخشی از سایت که ممکن است یک افزونه باشد برای عملکرد صحیح نیاز به jQuery دارد و بنا به دلایلی، وقتی مرورگر سعی کرده وب سایت را دانلود و آن jQuery خاص را فراخوانی کند، در دسترس نبوده است. این خطا می تواند از نمایش سایت به کاربران جلوگیری کند. از آنجا که تقریباً 78 درصد از وب سایت های موجود در اینترنت با jQuery اجرا می شوند، بروز این خطا بسیار رایج است.
تصویر (1)
دلایل احتمالی خطای "jQuery is not defined"
چند دلیل احتمالی وجود دارد که ممکن است باعث بروز خطای "jQuery is not defined" شده باشد:
- افزونه های قدیمی نصب شده در سایت وردپرس شما با افزونه هایی که اخیراً نصب و فعال کرده اید، تداخل دارند. اگر اخیراً افزونه های جدیدی را نصب یا فعال کرده اید یا برخی از افزونه ها در سایت شما به روز نشده اند، ممکن است موجب بروز این خطا شده باشند.
- یک سرویس میزبانی کند یا ضعیف، می تواند مدت زمان لازم برای اجرای jQuery شما را هنگام فراخوانی افزایش دهد. برای بررسی این امر، منابع سرور یا گزارشات خطا را به صورت مداوم بررسی کنید.
- ممکن است جاوا اسکریپت در وب سایت شما قبل از دریافت کامل jQuery ها در حال اجرا باشد یا شاید هنگام لود صفحه، یک فایل جاوا اسکریپت به درستی لود نمی شود.
- شاید شبکه CDN که برای بهبود عملکرد سایت خود از آن استفاده می کنید، نتوانسته به سرور شما دسترسی پیدا کند. اگر از CDN استفاده نمی کنید، می توانید این احتمال را به طور کامل رد کنید.
- این احتمال وجود دارد که در نسخه jQuery شما خطا یا اشتباه تایپی وجود داشته باشد. شاید شخصی اخیراً یکی از فایل های اصلی یا افزونه ها را ویرایش کرده که باعث اختلال شده است.
چگونه می توان خطای "jQuery is not defined" را برطرف کرد؟
قبل از اینکه به رفع مشکل بپردازید، به یاد داشته باشید که پیش از ویرایش کدها، از وب سایت خود نسخه پشتیبان تهیه کنید. حتی باتجربه ترین توسعه دهندگان نیز مرتباً مرتکب اشتباه می شوند و داشتن نسخه پشتیبان مانع از دست دادن اطلاعات مهم در هنگام عیب یابی می شود. در سرویس های میهن وب هاست می توانید با توجه به نوع کنترل پنل هاست خود، با استفاده از آموزش های زیر اقدام به تهیه نسخه پشتیبان نمایید:
آموزش تهیه نسخه پشتیبان در سی پنل
آموزش تهیه نسخه پشتیبان در دایرکت ادمین
اگر برایتان امکان پذیر است، ابتدا خطا را در یک سایت تستی، حل نموده و سپس اصلاحات انجام شده را روی سایت اصلی اعمال کنید. هنگامی که اقدامات احتیاطی لازم را انجام دادید، زمان رفع این خطا فرا رسیده است.
حل این خطا نیاز به آشنایی با افزودن، حذف و ویرایش کدها دارد. البته نگران نباشید، نیازی به نوشتن هیچ کدی از ابتدا نیست. اما اگر به کدهای سایت خود از طریق FTP یا کنترل پنل هاست دسترسی داشته باشید، بسیار مفید خواهد بود. ویرایش کد از طریق گزینه "ویرایشگر پوسته" در پیشخوان وردپرس برای این کار مناسب نیست. اگر در حال حاضر ویرایشگر متن خوبی ندارید، لازم است آن را نصب کنید.
در ادامه چند روش برای حل این خطا و بازگرداندن سایت معرفی می شود.
روش 1: از تب "Network" برای رفع اشکال استفاده کنید
به تب "Network" در "Inspect" مرورگر خود مراجعه کنید تا مشاهده نمایید که آیا jQuery لود شده است یا خیر. این بخش به شما امکان بررسی سریع موضوع را می دهد.
گزینه بعدی، بررسی افزونه ها و قالب هایی است که می توانند باعث ایجاد خطا شوند. کدهای سایت خود را بررسی کنید و مطمئن شوید که شامل jQuery نیز می شوند. بهتر است هر jQuery فقط یک بار بارگذاری شود.
اگر کتابخانه jQuery گنجانده نشده است، آن را با تکه کد زیر به تابع wp_enqueue_script() اضافه کنید:
wp_enqueue_script( 'tt-mobile-menu', get_template_directory_uri() .
'/js/mobile-menu.js', array('jQuery'), '1.0', true );
برای انجام این کار به پوشه wp-includes مراجعه نموده سپس در فایل script-loader.php کد را اضافه کنید. اگر این روش کارساز نبود یا مشاهده کردید که کتابخانه jQuery از قبل موجود است، روش بعدی را مطالعه نمایید.
تصویر (2)
روش 2: مطمئن شوید که jQuery لود شده است
هنگامی که jQuery گنجانده شده اما لود نشده باشد، ممکن است با خطای "jQuery is not defined" مواجه شوید. با یافتن لینک اصلی اسکریپت و باز کردن URL آن در یک مرورگر دیگر یا تب جدید، مطمئن شوید که لود شده است.
به عنوان مثال، اگر "=script src>" به صورت زیر تنظیم شده باشد:
تصویر (3)
قسمت http://code.example.com/jquery-1.11.2.min.js را کپی نموده و در یک پنجره یا تب جدید جایگذاری کنید. اگر فایل jQuery لود شد و کل محتویات را به شما نشان داد، می توانید این گزینه را از لیست خطایابی خود حذف کنید.
روش 3: میزبانی کتابخانه jQuery گوگل در هاست
این یک راه حل عالی برای اجرای کدهای جاوا اسکریپت است زیرا اجرای jQuery در localhost ممکن است به طور کلی تجربه کاربران از وب سایت شما را بهبود بخشد و نیاز به لود کتابخانه ها از سایر سرورها نباشد. این کار به جلوگیری از سایر مشکلات لود jQuery از CDN کمک می کند.
// Fall back to a local copy of jQuery
window.jQuery || document.write(''))
تصویر (4)
روش 4: یک قطعه کد به فایل wp-config.php اضافه کنید
اگر هیچ یک از موارد فوق مشکل را رفع نکرد، فایل wp-config.php را باز کرده و قطعه کد زیر را به طور کامل در آن جایگذاری کنید:
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
define('CONCATENATE_SCRIPTS', false);
تصویر (5)
روش 5: کتابخانه jQuery را به صورت دستی وارد کنید
به عنوان آخرین روش، می توانید مستقیماً فایل header.php را ویرایش کرده و کتابخانه jQuery را اضافه کنید.
نحوه انجام آن به صورت زیر است:
- ابتدا به کتابخانه های میزبانی شده در گوگل مراجعه نموده و آخرین نسخه کتابخانه jQuery را به طور کامل کپی کنید.
- فایل header.php خود را که در پوشه قالب های شما یافت می شود، باز کنید.
- کتابخانه jQuery کپی شده در مرحله اول را به آن اضافه کنید. آن را بعد از تگ head قرار دهید.
- پس از اتمام کار، فایل را ذخیره کنید.
تصویر (6)
پس از انجام این مراحل، باید بتوانید خطای "jQuery is not defined" را برطرف کرده و به سایت خود دسترسی پیدا کنید.
از آنجا که این مشکل معمولاً به دلیل ناتوانی مرورگر در ارتباط با کتابخانه jQuery شما است، راه حل های محدودی وجود دارد که می توانید امتحان کنید. اکثر افراد با یکی از گزینه های ذکر شده موفق به رفع مشکل می شوند.