jQuery هسته - روش noConflict()

مثال

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

var jq=$.noConflict();

آزمایش کنید

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

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

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

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

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

نحوه استفاده

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>

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

این نسخه از روش noConflict بیشتر است، زیرا jQuery را کاملاً دوباره تعریف می‌کند. این معمولاً در شرایط خاصی استفاده می‌شود، مانند زمانی که می‌خواهید jQuery را در محیطی با تعارضات شدید استفاده کنید. توجه داشته باشید که پس از فراخوانی این روش، احتمالاً پلاگین‌ها معتبر نخواهند بود.

مثال

مثال 1

شیء مرجوع شده به $ به شیء اصلی مرتبط کنید:

jQuery.noConflict();
jQuery("div p").hide();	// استفاده از jQuery
$("content").style.display = "none";	// استفاده از $ از دیگر کتابخانه‌ها

مثال 2

از نام جایگزین $ استفاده کنید، سپس یک تابع ایجاد و اجرا کنید که در محدوده این تابع $ به عنوان نام جایگزین برای jQuery استفاده می‌شود. در این تابع، شیء اولیه $ معتبر نیست. این تابع برای اکثر پلاگین‌هایی که به دیگر کتابخانه‌ها وابسته نیستند بسیار مفید است:

jQuery.noConflict();
(function($) { 
  $(function() {
    // کد استفاده از $ به عنوان نام جایگزین برای jQuery
  });
})(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