دستور selector. و context. در جی کوئری
مسئله
وقتی که داریم یک پلاگین یا یک متد می نویسیم که جی کوئری را توسعه می دهد، نیاز داریم که بدانیم که وقتی این متد را فراخوانی کردیم از چه سلکتور و چه محتوایی(context) استفاده شده است، تا بتوانیم دوباره این متد را فراخوانی کنیم.
راه حل
ما می توانیم از پروپرتی های هسته ای selector. و context. در کنار یکدیگر استفاده کنیم؛ تا بتوانیم کوئری اصلی که پاس داده شده بود، را دوباره ایجاد کنیم. ما می توانیم از هردوی این پروپرتی ها در کنار یکدیگر استفاده کنیم:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>Chapter 3 - Recipe 9 - Determining the exact query that was used</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
<!--
(function($){
$.fn.ShowQuery = function(i) {
alert("$(\""+ $(this).selector + "\", " + $(this).context +")");
if (i < 3)
{
$($(this).selector, $(this).context).ShowQuery(i+1);
}
};
$("div").ShowQuery(1);
})(jQuery);
//-->
</script>
</head>
<body>
<div>
This is a div.
</div>
</body>
</html>
(تصویر 3.10)

توضیحات
در مثال بالا، ما یک متد تعریف کردیم که می تواند از طریق یک گزینشگر جی کوئری یعنی ShowQuery مورد فراخوانی قرار گیرد. در داخل این متد، ما کوئری مورد نظر را alert می کنیم و سپس به صورت بازگشتی دستور ShowQuery را دوباره با همان سلکتور جی کوئری، فراخوانی می کنیم . دستور if نیز برای این است که در داخل یک حلقه ی بازگشتی گیر نکنیم.
پروپرتی های هسته ای selector. و context. در جی کوئری 1.3 معرفی شده اند، که در ژانویه 2009 منتشر شده اند. این متدها، بیشتر توسط طراحان پلاگین هایی مورد استفاده قرار می گیرد که نیاز دارند بر روی کوئری اصلی پاس داده شده، کارهایی را انجام دهند. اگر بخواهیم یک مورد از این استفاده های بالقوه را نام ببریم می توانیم به برگردادن کوئری گزینش یا بررسی اینکه آیا یک عنصر مورد انتخاب(گزینش) قرار گرفته است یا نه؛ اشاره کنیم.
پروپرتی selector. به صورت یک رشته، سلکتور حقیقی که از آن برای تطابق چند عنصر استفاده شده است را برمی گرداند. فرض کنید در گزینش ما، یک شکست ایجاد شده باشد، مثلا اگر از متد find() استفاده کرده باشیم، پروپرتی selector. سلکتور کلی را برای ما برمی گرداند:
$("div").find("a").selector;
//returns: "div a"
پروپرتی context. نیز گره DOM را که در اصل در متد jQuery() قرار داده شده است را برمی گرداند. اگر هیچ محتوایی(محدوده ای) در سلکتور ما مشخص نشده باشد، context یا همان محدوده ی پیش فرض، همان سند(document) محسوب می شود.
{module کمک نقدی به نویسنده}
- بازدید: 509
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.