🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ Alireza
تفاوت دستورات jQuery
محسن موحد حل شده توسط محسن موحد

سلام وقت بخیر

چه تفاوتی بین function jQuery (document) و .....jQuery(document).ready(function وجود داره؟

مورد دوم رو که مثل استاد قرار میدیم یه پیامی میده که میگه از مورد اول استفاده کنید. و کل کد هارو داخل function jQuery (document) قرار میدم رفع میشه.

سلام،

jQuery(document).ready(function() { ... });
jQuery(function() { ... });

مورد دوم مخفف و کوتاه شده مورد اول است و در نتیجه تفاوتی نمیکند.

یعنی در واقع jQuery() یا $() برابر مورد اول است. ($ در فضای نام ست شده اشاره به jQuery دارد)

محسن موحد ۲۲ مرداد ۱۴۰۲، ۲۱:۳۰

من از مورد دوم که استفاده میکنم phpstorm دیگه اون متن هشدار unresolved function or method jQuery نشون نمیده و کامل اوکی میشه اما تو مرورگر دیگه برخی کدها مثل آلرت و... کار نمیکنه چرا با اینکه phpstorm هیچ خطایی از کدها نمیگیره اما کار نمیکنه ؟ ولی مورد اول اینطور نیست و unresolved function or method jQuery نشون میده اما حداقل کد‌ها کار میکنه....

Alireza ۲۳ مرداد ۱۴۰۲، ۰۸:۰۴

این کد‌های بنده هست در این حالت Unresolved function or method jQuery() نشون میده اماکدها کار میکنه

   jQuery(document).ready(function () {
        // alert('Hello')
        // jQuery('.btn-success').click(function () {
        //   alert('hello')
        // })
        //
        //  jQuery('#myform2').submit(function (event) {
        //
        //
        //     alert('bye');
        // });
        //
jQuery('.social-login').on('click', function () {
            jQuery('.panel').slideToggle();
        })
//
// jQuery('#but').on('click', function (e) {
//      e.preventDefault();
//     // jQuery('.box').animate({
//     //     right: '200px', opacity: 0.5
//     $('#username').val('admin')
//
//     })
        jQuery('#switchCheckbox').on('change', function () {
            if (this.checked) {
                jQuery('body').addClass('night');
            } else {
                jQuery('body').removeClass('night');
            }
        })
    });
       jQuery('#switchCheckbox').change(function () {
           localStorage.setItem('test', 'localstorage');
           //localStorage.clear(test);
           let q = localStorage.getItem('test');
           alert(q);
              });


در حالت زیر هم دیگه phpstorm متن Unresolved function or method jQuery() نشون نمیده و کامل فیکس شده اما کدها تو مرورگر کار نمیکنن:

فقط کل کدها داخل function jQuery(document) {} قرار گرفته و حتی بیرون از کدها هم قرار بدم phpstormایرادی نمگیره اماهمچنان کدها کار نمیکنن.

function jQuery(document) {
jQuery(document).ready(function () {
        // alert('Hello')
        // jQuery('.btn-success').click(function () {
        //   alert('hello')
        // })
        //
        //  jQuery('#myform2').submit(function (event) {
        //
        //
        //     alert('bye');
        // });
        //
jQuery('.social-login').on('click', function () {
            jQuery('.panel').slideToggle();
        })
//
// jQuery('#but').on('click', function (e) {
//      e.preventDefault();
//     // jQuery('.box').animate({
//     //     right: '200px', opacity: 0.5
//     $('#username').val('admin')
//
//     })
        jQuery('#switchCheckbox').on('change', function () {
            if (this.checked) {
                jQuery('body').addClass('night');
            } else {
                jQuery('body').removeClass('night');
            }
        })
    });
       jQuery('#switchCheckbox').change(function () {
           localStorage.setItem('test', 'localstorage');
           //localStorage.clear(test);
           let q = localStorage.getItem('test');
           alert(q);
       });
    }


ممنون میشم اگر ایرادی داره اصلاح کنید و برام بفرستید.

Alireza ۲۳ مرداد ۱۴۰۲، ۰۸:۱۹

این خطای PHPSTORM اینه که کتابخانه جی کوئری به phpstorm اضافه نشده و اگر میخواهید ادیتور بشناسد کدهای مربوط به کتابخانه رو از قسمت Settings | Languages & Frameworks | JavaScript | Libraries اضافه کنید.

اما علتی که کدهای شما در حالت دوم اجرا نمیشود بخاطر این است که شما سینتکس رو اشتباه نوشتید و تعریف یک تابع جاوااسکریپتی رو اوردید.

function jQuery() یا function anything() برای تعریف یک تابع در جاوااسکریپت استفاده میشود و برای اجرای یک تابع و call کردن هم باید اون تابع رو صدا زد. ضمن اینکه با این تعریف تابع اصلی کتابخانه جی کوئری رو هم تغییر دادید.

یا مانند راه اول بنویسید را بعنوان راه دوم همانطور که در پست اول نوشتم، به این شکل میتونید بنویسید:

jQuery(function() { 
    // anything is here
});
بهترین پاسخ
محسن موحد ۲۳ مرداد ۱۴۰۲، ۰۸:۵۱