متد ()noConflict
اگر بخواهید علاوه بر jQuery از دیگر framework ها یا کتابخانه ها بر روی صفحه ی خود استفاده کنید، چی؟
jQuery و دیگر کتابخانه های جاوا اسکریپت
همان طور که میدانید jQuery از علامت $ به عنوان یک میانبر جهت دستیابی به المان ها بهره می گیرد.
در حال حاضر کتابخانه های بسیار دیگری مانند AngularJS، Backbone، Ember، Knockout وجود دارد که پرطرف دار هستند.
چنانچه دو کتابخانه ی جاوا اسکریپت همزمان از این علامت استفاده کنند، این احتمال وجود دارد که یکی از آن ها از کار بیافتد و اجرای برنامه مختل شود.
تیم jQuery برای جلوگیری از رخداد چنین مشکلی متد noConflict() را درنظر گرفته است.
متد ()NoConflict با این متد نیاز به استفاده از علامت $ از میان برداشته می شود. حال می توان از این علامت در کدهای سایر کتابخانه ها بدون رخداد اختلال jQuery استفاده کنید.
در صورت استفاده از متد noConflict()، کافی است بجای میانبر یا علامت $ اسم کامل کتابخانه را تایپ کنید:
<script>
$.noConflict();
jQuery(document).ready(function () {
jQuery("button").click(function () {
jQuery("p").text("jQuery is still working!");
});
});
این امکان نیز وجود دارد که شما میانبر اختصاصی خود را ایجاد کنید. noConflict() یک ارجاع (reference) به jQuery برمی گرداند که شما می توانید برای استفاده در آینده در یک متغیر ذخیره کنید.
<script>
var jq = $.noConflict();
jq(document).ready(function () {
jq("button").click(function () {
jq("p").text("jQuery is still working!");
});
});
اگر گروهی (block) از کدهای jQuery دارید که از علامت $ در آن به عنوان میانبر استفاده شده و شما نمی خواهید که همه ی علامت های $ تغییر یابند، می توانید با ارسال علامت دلار به عنوان پارامتر به ()ready این امکان را بدهید که داخل این تابع از علامت $ استفاده شود، در خارج از تابع لازم است از اسم کامل کتابخانه "jQuery" به عنوان میانبر بهره بگیرید.
<script>
$.noConflict();
jQuery(document).ready(function ($) {
$("button").click(function () {
$("p").text("jQuery is still working!");
});
});