۱ دانشجوی سون‌لرن
ارور خوردن j(this)
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۰۸ مرداد ۱۴۰۴

درود بر شما من کتابخانه جی‌کوئری را طبق آموزش به این شکل در head قرار دادم؛

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="assets/js/main.js"></script>

و بخش main.js‌ رو هم به این شکل نوشتم:

let j = jQuery.noCoflict();
j(document).ready(function (){
    let tab = j('.tab li a');
    tab.click(function (){
        let consents = this.hash .replace('/','');
        tab.removeClass("active");
        j(this).addClass ("active");
    })
})

اما مدام به من در index.html ارور Missed locally stored library for HTTP link میده.

در main.js‌ هم روی j(this) ‌ارور میده. من با ساختار کامل jQuery() هم تست کردم ولی بازم ارور میده. ممنون میشم بهم بگید مشکل از کجاست؟ چون اصلا تغییرات فایل js‌ روی html‌ اعمال نمیشه.

screenshot-2025-07-30-2-5wn90yrs.png

سلام دوست عزیز! 

1. ارور اون کتابخونه jQuery: اون پیغام "Missed locally stored library" میگه که محیط کارت (مثل IDE یا سرور) می‌خواد jQuery رو به صورت محلی داشته باشه، نه از لینک خارجی (CDN). یه راه حل ساده اینه که jQuery رو دانلود کنی، بذاری تو پوشه `assets/js/` و تو `head` به جاش از این استفاده کنی:

<script src="assets/js/jquery-3.7.1.min.js"></script>
<script src="assets/js/main.js"></script>

2. مشکل تو کد main.js: اون خطاهایی که می‌گه `j(this)` یا `removeClass` و `addClass` مشکل دارن، نشون می‌ده jQuery درست لود نشده یا `noConflict()` درست کار نکرده. مطمئن شو که فایل jQuery قبل از `main.js` لود شده. کدت رو یه کم مرتب‌تر کن، مثلاً اینجوری:


  let j = jQuery.noConflict();
  j(document).ready(function () {
      let tab = j('.tab li a');
      tab.click(function () {
          let consents = this.hash.replace('/', '');
          tab.removeClass("active");
          j(this).addClass("active");
      });
  });
  


  اگه بازم خطا دادی، می‌تونی `noConflict()` رو بذاری کنار و مستقیم با `jQuery` کار کنی، مگر اینکه واقعاً بهش نیاز داشته باشی.

3. تغییرات اعمال نمی‌شه: اگه می‌بینی تغییراتت تو `index.html` نمیاد، شاید کش مرورگرت باعث میشه! یه بار کش رو پاک کن یا از حالت ناشناس (Incognito) امتحان کن. همچنین چک کن فایل‌ها رو درست ذخیره کردی و مسیرشون (مثل `assets/js/main.js`) درست باشه.

بهنام مرادی ۱۷ مرداد ۱۴۰۴، ۱۳:۰۴