اسفند ۱۲, ۱۳۹۷ Mostafa بدون دیدگاه

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

توجه : درخواست افزونه ،قالب، اسکریپت و نرم افزار و ... و سوالات و مشکلات خود را در انجمن ارسال نمایید

نصب و راه اندازی  JQuery

برای اینکه بتوانیم از امکانات jquery استفاده کنیم بایستی  آخرین نسخه کتابخانه jquery رو از سایت jquery.com دانلود کنیم .

سه مدل برای دانلود وجود دارد :

Minified : که خیلی فشرده شده و برای استفاده تجاری استفاده میشه و ۱۵ کیلوبایت هم می باشد.(به دلیل لود شدن سریع)
Uncompressed : که به صورت غیر فشرده هست و حجمش حدود ۹۴ کیلو بایت می باشد. و برای توسعه یا فراگیری مورد استفاده قرار میگیرد.
Packed : حجمی حدود ۲۹ کیلوبایت داره و به صورت gzip فشرده نشده .

بعد از دانلود شما باید کتابخانه را در صفحات خود نصب کنید .

طریق نصب جی کوئری به دو صورت  inline  و  external می باشد.

اما نحوه نوشتن کدها نیز به همین دو روش میباشد :

به صورت inline : در این روش کدها در همان صفحه ای که میخواهیم جیکوئری را فراخوانی کنیم نوشته میشود ، توصیه میشود از این روش کمتر استفاده کنید.
به صورت external : در این حالت شما یک فایل با پسوند sample.js ایجاد میکنید. و تمامی کد های خود را در این فایل مینویسید. و سپس فایل sampale.js را در صفحات خود فراخوانی میکنید.

قواعد دستوری جیکوئری ( Jquery )

با قواعد دستوری جیکوئری شما میتوانید  عناصر HTML را انتخاب کنید و عملیات مورد نظر خود را بر روی آنها انجام  دهید.

ساختار اصلی یک دستور جیکوئری :

    $(selector).action()

$ : برای دسترسی به جیکوئری  به کار میرود.

selector : برای جستجوی عناصر HTML  به کار میرود.

action() : عملی را که که بر روی عنصر بایستی  انجام شود مشخص میکند.

این مثال المنت جاری را مخفی میکند:

    $(this).hide()

برای یک کلاس خاص :

    $(".classname").hide()

برای یک ID خاص :

    $("#IDname").hide()

برای یک تگ خاص :

    $(div).hide()

در ادامه ی آموزش jquery ، این موارد به طور کامل توضیح داده خواهد شد.

انتخاب گر ها در جی کوئری (Jquery Selectors)

سلکتور همونطور که از اسمش پیداست برای انتخاب کردن المنت ها (جهت اعمال کد روی اون‌ها) در جی کوئری بکار میرود. برای انتخاب یه عنصر HTML به صورت مستقیم میتوانیم آن را  فراخوانی کنیم.

انتخاب همه عناصر (*)

    $(*).hide()

با کد زیر میتوانید همه عناصر صفحه رو فراخوانی کنید.در این مثال همه عناصر با کلیک شدن ، hide میشوند.

    $(document).ready(function(){ $("*").click(function(){ $(this).hide(); }); });

انتخاب عناصر در حال حرکت (animated)

با کد زیر میتوانیم عناصری را که درحال حرکت هستند را انتخاب کنیم:

    $("div:animated").hide()

انتخاب عناصر با خصوصیت دلخواه
برای انتخاب عناصر بر اساس خصوصیت ها از کد زیر استفاده میکنیم.
کد زیر لینک هایی که خاصیت href آنها با عبارت http شروع شود را hide میکند.

    $('a[href^="http"]').hide()

کد زیر لینک هایی که خاصیت hreflang آنها en باشد یا با -en شروع شوند را hide میکند.

    $('a[hreflang|="en"]').hide()

کد زیر عکس‌هایی را که خاصیت Alt آنها  برابر با www.pars-soft.ir باشد را  hide میکند.

    $('img[alt*="www.ctboard.com"]').hide()

کد زیر عکسهایی را که شامل کلمه www.ctboard.com باشند را انتخاب میکند و  hide میکند.

    $('img[alt~="www.ctboard.com"]').hide()

کد زیر همه لینک‌هایی که خصوصیت href آنها با کلمه”html” تموم میشود  را انتخاب میکند و  hide میکند.

    $('a[href$="html"]').hide()

کد زیر فقط div هایی را که خصوصیت کلاس آنها  myclass باشد را انتخاب میکند و  hide میکند.

    $('div[class="myclass"]').hide()

کد زیر فقط div هایی را که خصوصیت کلاس آنها  myclass نباشد را انتخاب میکند و  hide میکند.

    $('div[class!="myclass"]').hide()

انتخاب دکمه ها

کد زیر به همه button ها حاشیه ۳ پیکسلی میدهد . در این کد نحوه اعمال یک کد CSS به یک عنصر را می ببینید.

    $(":button").css({"border":"3px black solid"});

انتخاب چک‌باکس ها

کد زیر به همه چک‌باکس ها  حاشیه ۳ پیکسلی میدهد .

    $(":checkbox").css({"border":"3px black solid"});

اگه بخوایم این نوع کدها فقط در محدوده یک عنصر خاص کار کنند ، به راحتی میتوانیم از اسم کلاس‌ها ، IDها یا تگ ها استفاده کنیم:

    $("#container .leftColumn input:checkbox").css({border:"3px black solid"});

انتخاب Input های از نوع File
برای انتخاب Input هایی که خصوصیت type آن‌ ها مقدار file دارد و برای انتخاب یک فایل جهت آپلود در سایت استفاده میشوند :

    $("input:file").css({border:"3px black solid"});

انتخاب عنصرهای check شده
این سلکتور checkbox ها و radio هایی را  که تیک خورده اند (انتخاب شده اند) را انتخاب میکند.

    $("input:checked").css({"border":"3px black solid"});

در کد زیر با انتخاب هر دکمه رادیویی موجود در صفحه ، مقدار value آن ، در یک عنصر جدید که کلاس .log دارد ، نمایش داده میشود :

    $("input").click(function(){ $(".log").html( $(":checked").val() + " is checked!" ); });

انتخاب عناصر فرزند

درست مثل CSS میتوانیم در jQuery هم ، عناصر فرزند رو فراخوانی کنیم :

    $("ul.class1 > li").css({border:"3px black solid"});

انتخاب بر اساس محتوا
با کد contains میتوانیم عنصری که متن خاصی داخلش وجود دارد را انتخاب کنیم.
کد زیر هر پاراگرافی که کلمه ctboard.com داخلش باشد را  نارنجی میکند.

    $("p:contains('ctboard.com.com')").css("color", "orange");

انتخاب عنصرهای غیرفعال (disabled)
کد زیر کلمه “DISABLED” را در همه input هایی که غیرفعال شدند مینویسد:

    $("input:disabled").val("DISABLED");

انتخاب عنصرهای فعال (enabled)
کد زیر برای همه input هایی که فعال هستند حاشیه قرمز میگذارد:

    $("input:enabled").css("border":"1px solid red");

انتخاب عناصر خالی
برای عناصری که هیچ متن یا تگی داخلشان نباشد. مثل تگ های زیر:

    <a></a> <li></li> <td></td>

کد زیر همه تگ‌های خالی که داخل تگ body باشند را انتخاب میکند ، متن Empty Tag را داخلشان مینویسد و رنگ پیش زمینه آنها را قرمز میکند :

    $("body :empty").text("Empty Tag").css('background','red');

انتخاب بر اساس اندیس
با استفاده از eq میتوانیم از بین تعدادی عنصر یکسان ، عنصری با شماره خاص رو انتخاب کنیم.
اگه یه لیست با ۳ تا li داشته باشیم ، شماره اندیس این سها li از ۰ تا ۲ هست (شمارش اندیس‌ها از ۰ شروع میشه)
برای انتخاب عنصر اول:

    $("li:eq(0)").css("color","blue" );

برای انتخاب عنصر دوم:

    $("li:eq(1)").css("color","blue" );

انتخاب زوج و فرد

کد زیر پاراگراف‌های زوج رو آبی میکند:

    $("p:even").css("color","blue");

کد زیر پاراگراف‌های فرد رو قرمز میکند:

    $("p:odd").css("color","red");

انتخاب چند عنصر
برای انتخاب یه عنصر، از کدزیر  استفاده میکنیم :

    $(".myclass1").css("color":"orange");

برای انتخاب چند تا عنصر ، کافیست نام عنصر را به همراه کاما “,” اضافه کنیم :

    $(".myclass1,.myclass2,.myclass3").css("color":"orange");

کد بالا همه عناصری که کلاس myclass1 و myclass2 و myclass3 دارند را انتخاب میکند و رنگشان را به نارنجی تغییر میدهد.

انتخاب عنصر اول
“first” عنصر اول را از بین تعدادی عنصر انتخاب میکند.کد زیر اولین پاراگراف رو انتخاب میکند و border قرمز را به آن میدهد .

    $("p:first").css("border":"1px solid red");

انتخاب first-child یا فرزند اول
first-child عنصر فرزند اول را از بین تعدادی عنصر انتخاب میکند. کد زیر اولین پاراگراف داخل تگ div را انتخاب میکند  و border قرمز را به آن میدهد .

    $("div p:first-child").css("border":"1px solid red");

انتخاب عنصر آخر
“Last” عنصر آخر را از بین تعدادی عنصر انتخاب میکند.کد زیر آخرین پاراگراف را انتخاب میکند و border سبز را به آن میدهد .

    $("p:last").css("border":"1px solid green");

انتخاب last-child یا فرزند آخر
first-child عنصر فرزند اول را از بین تعدادی عنصر انتخاب میکند. تقریبا شبیه Last کار میکند.کد زیر آخرین پاراگراف داخل تگ div را انتخاب میکند و border قرمز را به آن میدهد .

    $("div p:last-child").css("border":"1px solid green");

انتخاب فرزند n ام
nth-child فرزند n ام را از بین تعدادی عنصر انتخاب میکند. کد زیر سومین پاراگراف داخل تگ div را انتخاب میکند و رنگ متنش را آبی میکند.

    $("div p:nth-child(3)").css("color":"blue");

انتخاب عنصر دارای خصوصیت
با این انتخابگر میشود عناصری را انتخاب کرد که Attribute های خاصی دارند.مثلا با کد زیر همه عکس‌هایی که خصوصیت Alt داشته باشند را انتخاب میکند و  border قرمز را به آن میدهد .

    $('img[alt]').css("border":"4px solid red");

منفی کردن انتخابگر با not
هنگامی که میخواهیم نتیجه را برعکس کنیم از این انتخابگر استفاده میکنیم ، کد زیر  به چک باکس های تیک خورده border سه پیکسلی میدهد.

    $("input:checked").css({"border":"3px black solid"});

کد زیر  به چک باکس های تیک خورده border سه پیکسلی میدهد ، که با اضافه کردن :not ، چک باکس های تیک نخورده رو انتخاب میکنیم:

    $("input:not(:checked)").css({"border":"3px black solid"});

gt: انتخاب عناصر بزرگتر
اگه چندتا پاراگراف داشته باشیم و بخواهیم پیش زمینه پاراگراف سوم به بعد را عوض کنیم، میتوانیم از انتخابگر gt (Greater than…) استفاده کنیم:

    $('p:gt(3)').css("background":"yellow");

کد بالا از بین همه پاراگراف ها، فقط پاراگراف سوم به بعد (۴ و ۵ و ۶ و…) را انتخاب میکند.

lt: انتخاب عناصر کوچیکتر
برای انتخاب عناصر قبل از مورد مشخص شده استفاده میشود :

    $('p:lt(3)').css("background":"orange");

کد بالا از بین همه پاراگراف ها، فقط پاراگراف‌های قبل از پاراگراف سوم را انتخاب میکند (پاراگراف ۱ و ۲)و  پیش زمینه آنها را  نارنجی مکیند.

انتخاب عناصر تک فرزند “only-child”
ممکنه این جمله رو متوجه نشید:
“اگه عنصری ، تنها عنصرِ عنصر والدِ خودش باشه ، انتخاب میشود”
پس بیشتر توضیح میدم:
اگه داخل عنصر والد ، ۲ تا عنصر فرزند داشته باشیم:

    <ul><li></li><li></li></ul>

یعنی ul پدر ، ۲تا فرزند li داره ، ولی اگر فقط یک فرزند داشته باشد:

    <ul><li></li></ul>

سلکتور only-child در جی کوئری ، فقط عناصری را انتخاب میکند که هیچ عنصر مشابهی ، قبل یا بعد آنها وجود نداشته باشد. در کد زیر ، فقط li هایی که تک فرزند باشند ، border آبی میگیرند.

    $("ul li:only-child").css("border", "3px solid blue");

انتخاب first-child یا فرزند اول
first-child عنصر فرزند اول را از بین تعدادی عنصر انتخاب میکند. تقریبا شبیه first کار میکند. کد زیر اولین پاراگراف داخل تگ div را انتخاب میکند و border قرمز به آن میدهد .

    $("div p:first-child").css("border":"1px solid red");

رویداد ها در جی کوئری (Jquery Events)

متدهای دسترسی به رویداد در JQuery جزء توابع اصلی و هسته ی اصلی جی کوئری هستند. Event Handler ها متدهایی هستند که وقتی «اتفاقی در صفحه HTML رخ می دهد» صدا زده می شوند.

در زیر چند مثال از متدهای رویداد در جی کوئری آورده شده است:

مقید کردن یک تابع به رویداد ready یک صفحه (وقتی که لود شدن صفحه کامل شد)

    $(document).ready(function)

مقید کردن یک تابع به یک رویداد کلیک بر روی عناصر انتخاب شده

    $(selector).click(function)

مقید کردن یک تابع به رویداد دابل کلیک بر روی عناصر انتخاب شده

    $(selector).dblclick(function)

مقید کردن یک تابع به رویداد فوکوس بر روی عناصر انتخاب شده

    $(selector).focus(function)

مقید کردن یک تابع به رویداد عبور ماوس از روی عناصر انتخاب شده

    $(selector).mouseover(function)

نظرات

توجه : لطفاً فقط نظرات خود را از این طریق ارسال نمایید و سوالات و مشکلات خود را در انجمن سایت مطرح نمایید.

دیدگاهتان را بنویسید