jQuery هسته‌ای - روش noConflict()

مثال

برای تعیین نام جدید برای متغیرهای jQuery از روش noConflict() استفاده کنید:

var jq=$.noConflict();

آزمایش شخصی

تعریف و نحوه استفاده

روش noConflict() کنترل متغیر $ را به jQuery واگذار می‌کند.

این روش کنترل متغیر $ از jQuery را آزاد می‌کند.

این روش همچنین می‌تواند برای تعیین نام جدید برای متغیرهای jQuery استفاده شود.

توضیحات:در صورت استفاده از $ برای توابع کتابخانه‌های دیگر،این روش بسیار مفید است.

نحوه استفاده

jQuery.noConflict(removeAll)
پارامتر توضیحات
removeAll مقدار بولین. نشان‌دهنده این‌که آیا اجازه داده شده تا تمامی متغیرهای jQuery به طور کامل بازگردانده شوند.

توضیحات

بسیاری از کتابخانه‌های JavaScript از $ به عنوان نام متغیر یا تابع استفاده می‌کنند،jQuery نیز از این قاعده پیروی می‌کند.در jQuery،$ تنها یک نام جایگزین برای jQuery است،بنابراین حتی بدون استفاده از $ نیز تمامی امکانات تضمین می‌شود.اگر نیاز به استفاده از کتابخانه JavaScript دیگری غیر از jQuery داریم،می‌توانیم از طریق فراخوانی $.noConflict() کنترل را به آن کتابخانه بازگردانیم:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  //کد استفاده از $ کتابخانه دیگر
</script>

این می‌تواند با روش .ready() ترکیب شود تا نام‌الگو برای جعبه‌های jQuery ایجاد شود،این تکنیک بسیار مؤثر است:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
    //کد استفاده از $ jQuery
  });
  //کد استفاده از $ کتابخانه دیگر
</script>

علاوه بر این،با ارسال پارامتر صحیح به این روش،می‌توانیم کنترل $ و jQuery را به کتابخانه اصلی بازگردانیم. قبل از استفاده،به دقت فکر کنید!

یہ سادے noConflict کو چلانے کی کافی سخت نسخہ ہے، کیونکہ یہ پورا jQuery کو دوبارہ تعریف کرتا ہے۔ یہ عام طور پر ایک سخت صورت حال میں استعمال کیا جاتا ہے، جیسے آپ جوائنٹر کو ایک بہت تیز منازع ماحول میں بندھنا چاہتے ہیں۔ اشارہ: اس طریق کا استعمال کئے جانے کے بعد، پلاگ ان کی کامیابی میں کافی ممکنہ ناکامی ممکن ہوتی ہے۔

مثال

مثال 1

$ کی مرجع کی جگہ پر اصل اوبجیکٹ کو منعکس کریں:

jQuery.noConflict();
jQuery("div p").hide();	// jQuery کا استعمال
$("content").style.display = "none";	// دوسرے لیبریری کا $() کا کوڈ

مثال 2

الاسم $ کو بحال کرکے، ایک فونکشن بنائیں اور اس فونکشن کو چلائیں، جس کی ماحول میں $ کو jQuery کا الاسم بنایا رکھا گیا ہے۔ اس فونکشن میں، اصل $ اوبجیکٹ بند آ رہا ہے۔ یہ فونکشن زیادہ تر غیر لیبریری پر منحصر پلاگ ان سے بہت موثر ہوتی ہے:

jQuery.noConflict();
(function($) { 
  $(function() {
    // $ کا استعمال کئے جانے والا کوڈ کے طور پر استعمال کریں
  });
})(jQuery);
... // دوسرے لیبریریوں میں $ کا استعمال کئے جانے والے کد

مثال 3

jQuery.noConflict() کو سادے ready کے ساتھ جوڑ سکتے ہیں، تاکہ کوڈ بھی سماجتا ہو:

jQuery.noConflict()(function(){
    // jQuery کا استعمال کئے جانے والا کوڈ
});
... // دوسرے لیبریریوں میں $ کا استعمال کئے جانے والے کد

مثال 4

ایک نئی الاسم بنائیں تاکہ آئندہ لیبریری میں jQuery اوبجیکٹ کا استعمال کریں:

var j = jQuery.noConflict();
j("div p").hide();	// jQuery کا کوڈ
$("content").style.display = "none";	// دوسرے لیبریری کا $() کا کوڈ

مثال 5

پورا jQuery کو ایک نئی نامسپاچ میں منتقل کریں:

var dom = {};
dom.query = jQuery.noConflict(true);

نتائج:

dom.query("div p").hide();	// نئی jQuery کا کوڈ
$("content").style.display = "none";	// دوسرے لیبریری کا $() کا کوڈ
jQuery("div > p").hide();	// jQuery کا دوسرا ورژن کا کوڈ