آموزش جی کوئری – Chaining در جی کوئری

  • آپدیت شده در تاریخ

آموزش جی کوئری

در بخش قبلی انیمیشن ها در jQuery را بررسی کردیم. در این قسمت از سری آموزش جی کوئری, به تکنیک زنجیر کردن متدها یا chaining در جی کوئری می پردازیم.

 

تکنیک دستورات پشت سر هم در جی کوئری

jQuery یک ویژگی قوی دیگر به نام زنجیر کردن متدها یا chaining را ارایه داده است که به ما اجازه می دهد چندین عملیات را روی مجموعه ای از عناصر, داخل یک خط کد تعریف و اجرا کنیم.

این امکان وجود دارد چرا که بیشتر متدهای جی کوئری یک آبجکت jQuery را برگشت (return) می دهند که می توانید برای صدا زدن متد دیگر استفاده کنید.

در مثال بالا از chaining در جی کوئری برای سه متد animate() استفاده کردیم. زمانی که کاربر روی دکمه کلیک کند, عرض <p> را به ۱۰۰٪ گسترش می دهد. همینکه width تغییر کرد, انیمیشن روی font-size شروع می کند و بعد از آن border شروع می شود.

نکته : تکنیک chaining در جی کوئری نه تنها به شما کمک می کند که کدهای jQuery خود را مختصر نگه دارید, بلکه سرعت و عملکرد اسکریپت شما را در هنگام اجرای مرورگر افزایش می دهد چرا که دیگر مرورگر نیاز ندارد چندین بار المان های یکسان را برای انجام کاری مشخص پیدا کند.

همچنین می توانید یک خط کد را به چندین خط بشکنید تا قابلیت خواندن آن بیشتر شود. برای مثال, متدهای پشت سر هم در مثال بالا را بصورت زیر می توانید بنویسید.

بعضی از متدهای جی کوئری یک آبجکت را برگشت نمی دهند. بطور کلی متدهای setter که مقداری را روی انتخاب ما ست می کنند یک آبجکت را برگشت می دهند که به ما امکان صدازدن متدهای دیگر روی آن انتخاب را می دهد.

در حالی که متدهای getter مقدار درخواستی را برگشت می دهند بنابراین نمی توانید در ادامه آنها متدهایی را صدا بزنید.

یک مثال معمول از این سناریو متد html() است که اگر هیچ پارامتری را پاس ندید, محتوای HTML عنصر انتخابی را به جای یک آبجکت, برگشت می دهد.

 

امیدوارم در این بخش آموزش جی کوئری, از تکنیک Chaining در جی کوئری نهایت استفاده را برده باشید.

در بخش بعدی با تابع بازگشتی در جی کوئری, آشنا می شوید.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق باشید

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
دیدگاه کاربران (۳)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. reza ۲۱ آبان ۱۳۹۹

    سلام
    من یه سوال داشتم ببخشید اینجا مطرح می کنم فوری هست.
    من یه تابع دارم که با ایجکس یه سری داده رو می گیره. و توی متغییر ذخیره میکنه. این تابع در document.ready اجرا میشه و بعد از اون تابع دیگه ای دارم که میاد بر اساس اون اطلاعات که در متغیر ذخیره شده یک جدول رو میسازه که اسم این تابع رو هم بعد از تابع قبلی در همین document,ready آوردم. اما مشکل اینه که زمانی که تابع دوم اجرا میشه اطلاعات هنوز کامل نیست و undifind میشه. درواقع هنوز کار تابع اول اجرا نشده دومی اجرا میشه و جدول رو بر اساس هیچی می نویسه!
    برای حل این مشکل میشه تابع دوم رو در آخر تابع اول فراخونی کنم اما میخوام بدونم راهی هست که زمانی که کار تابع اول تموم شد تابع دوم اجرا بشه؟

    پاسخ
    1. حسن شفیعی ۲۱ آبان ۱۳۹۹

      سلام.
      بهترین کار این هست که تابعی که مقادیر را بازگشت میده بصورت async تعریف کنید یعنی:
      async fucntion getData(){}
      و بعد به اینصورت داده را داخل متغییر ذخیره کنید
      var data = await getData();

      همچنین میتونید از متد .then هم استفاده کنید
      یا اینکه تا الان داخل success: ایجکس تست کردید؟

      این ها راهکارهایی هستند که میتونید پیاده کنید
      موفق باشید.

      پاسخ
      1. reza ۲۲ آبان ۱۳۹۹

        ممنون از شما

        پاسخ
دوره های آموزشی