استفاده از پارامتر Context در جی کوئری
مسئله
شما تا به حال نام پارامتر context (مفاد یا محتوا) را شنیده اید اما موقعیتی پیش نیامده است که از آن استفاده کنید.
راه حل
همان طور که می توانیم به متد jQuery() یا $() یک سلکتور بدهیم، می توانیم بعنوان آرگومان دوم، یک مفاد یا محتوایی(context) را معین کنیم. محتوا(context) محدوده ای است که متد جی کوئری باید در آن محدوده به جستجوی عناصری که با سلکتور تطابق دارند بگردد. پارامتر context احتمالا یکی از قابل درک ترین ویژگی های جی کوئری است.
راه استفاده از آرگومان context بسیار ساده است: تنها کافیست به یک عبارت سلکتور، یا یک شیء jQuery یا یک مجموعه ی DOM یا یک گره DOM، یک آرگومان دوم به منظور محتوا(context) بدهیم و جی کوئری در داخل آن محتوا به جستجو خواهد پرداخت. در زیر یک مثال را مشاهده می کنید: در کدهای زیر ما می خواهیم تمام فیلد های input که در داخل یک فرم(form) قرار دارند را قبل از اینکه submit شود، انتخاب کنیم:
jQuery('form').bind('submit', function(){
var allInputs = jQuery('input', this);
// Now you would do something with 'allInputs'
});
توجه کنید که کلمه ی کلیدی this بعنوان آرگومان دوم پاس داده شده است. کلمه ی کلیدی this در شنونده ی رویداد در خط 1،به عنصر form اشاره می کند. در خط 2، چونکه از کلمه ی this بعنوان محتوا(context) استفاده شده است، متد jQuery تنها عناصر input ای را برمی گرداند که در داخل form مذکور باشند.
اگر ما آرگومان دوم را مشخص نمی کردیم، آنگاه تمام input های داخل سند(document) انتخاب می شدند، نه آنکه ما می خواهیم. همان طور که گفته شد، ما همچنین می توانم یک سلکتور معمولی را بعنوان محتوا(context) مشخص کنیم:
jQuery('p', '#content');
کدهای قبل، دقیقا مجموعه عناصری مشابه زیر را برمی گرداند:
jQuery('#content p');
مشخص کردن یک محتوا(context) می تواند به خوانایی و سرعت، کمک کند.
توضیحات
محتوای(context) پیش فرض، که توسط جی کوئری مورد استفاده قرار می گیرد، همان سند(document) است. یعنی بالاترین آیتم در ساختار DOM. اگر محتوای شما با سند پیش فرض متفاوت است، تنها کافیست محتوای(context) خود را مشخص کنید. برای استفاده از یک محتوا(context) می توانید به صورت زیر عمل کنید:
jQuery( context ).find( selector );
در حقیقت، این همان کاری است که جی کوئری در پس زمینه انجام می دهد. با توجه به این نکته، اگر شما از قبل به این محتوا(context) دسترسی دارید، می توانید به جای یک سلکتور از آن استفاده کنید. یعنی هیچ معنایی ندارد که جی کوئری دوباره به فرآیند انتخاب کردن(selection process) بپردازد.
{module کمک نقدی به نویسنده}
- بازدید: 479
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.