سلام
اگه برنامه نویس وردپرس باشید احتمالا نیاز بوده که کد jQuery بنویسید. معمولا اونایی که دفعه اولشون هست که توی وردپرس کد jQuery مینویسن از تابع $ استفاده میکنن با ارور روبرو میشن. خب راه حل این مشکل توی اینترنت هست و راه های مختلفی هم داره. آخر پست چنتا از راه حل هایی که هست رو معرفی میکنم. ولی بحث اصلی این پست درباره اینه که چرا تابع $ رو نداریم…
چرا این تابع $ نیست؟
این تابع در حقیقت توی وردپرس هست. اما خود jQuery یه تابع داره به نام jQuery.noConflict() که باعث میشه $ از بین بره. اگه آخر فایل جاوااسکریپت کتابخونه jQuery وردپرس رو نگاه کنید متوجه میشید که این تابع اضافه شده. فایل jQuery وردپرس من
اصلی ترین دلیل اینکه این تابع رو نداریم بخاطر عدم تداخل $ کتابخونه jQuery با بقیه کتابخونه هاست. مثلا کتابخونه MooTools هم از این تابع استفاده میکنه. با اینکه این کتابخونه توی وردپرس نیست اما خب اضافه کردنش که کاری نداره و شاید یه پلاگین، قالب، کد یا هر چی دیگه باشه که از این کتابخونه استفاده کنه. اما مطمئنا هیچ کتابخونه ای به جز jQuery از تابع jQuery استفاده نمیکنه. پس اگه برنامه نویسی خواست تابع $ داشته باشه میتونه خودش از روی تابع jQuery این رو ایجاد کنه.
راه های حل این مشکل
برای حل این مشکل من سه راه حل دارم. اگه راه حل دیگه ای دارید خوشحال میشم بگید 🙂
هر جایی که بصورت عادی $ مینوسیم بنویسید jQuery
چون بصورت پیشفرض تابع jQuery وجود داره شما میتونید به راحتی بجای $ ازش استفاده کنید. حتی توی کنسول مرورگر هم باید به این صورت بنویسید.
$('.damn_world').fadeOut(); »»»» jQuery('.damn_world').fadeOut();
استفاده از تابع لودر
این کدهایی که نوشتیم باعث میشه که مشخص کنیم در حقیقت $ به تابع jQuery اشاره داره.
(function($) {
$(document).ready( function() {
// Code goes here
$('.damn_world').fadeOut();
});
})(jQuery);
ساخت موقتی $
از طریق این روش موقتا تابع $ رو از روی jQuery میسازید. در صورتی که قبل از ساختنش تابع $ وجود داشته باشه میایم توی یه تابع دیگه کپیش میکنیم که بعد از کد خودمون دوباره به تابع قبلیش برش گردونیم و اختلالی توی سایت ایجاد نشه.
let cached$ = $;
$ = jQuery;
// Code goes here
$('.damn_world').fadeOut();
$ = cached$;
نکته
استفاده از تابع $ کاملا قراردادی هست و شما میتونید از هر چیز دیگه ای که مجاز باشه استفاده کنید.
مثلا نمیتونید از ~ ! @ # ^& * ( ) + = – { } [ ] \ | ‘ ” : ; / . , < > اعداد استفاده کنید.
اما میتونید از: _ و تمام حروف استفاده کنید. توجه: یکی از کتابخونه های پر استفاده در وب Underscore.js هست که از تابع _ استفاده میکنه.
بهنام
۱۶ اردیبهشت ۱۴۰۲ @ ۱:۱۰ ب٫ظ
اینجام نظر میذارم اصلا
دمت گرم