مетод jQuery noConflict()

چگونه می‌توان jQuery و سایر فریم‌ورک‌ها را در صفحه به طور همزمان استفاده کرد؟

jQuery و سایر فریم‌ورک‌های JavaScript

همانطور که شما آگاهی دارید، jQuery از نماد $ به عنوان اختصار خود استفاده می‌کند.

اگر فریم‌ورک‌های دیگر JavaScript نیز از نماد $ به عنوان اختصار استفاده کنند، چه؟

برخی از فریم‌ورک‌های دیگر JavaScript شامل: MooTools، Backbone، Sammy، Cappuccino، Knockout، JavaScript MVC، Google Web Toolkit، Google Closure، Ember، Batman و Ext JS می‌باشند.

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

تیم jQuery به این مشکل توجه کرده و روش noConflict() را پیاده‌سازی کرده است.

مетод jQuery noConflict()

مетод noConflict() کنترل نماد $ را آزاد می‌کند، بنابراین سایر اسکریپت‌ها می‌توانند از آن استفاده کنند.

مثال

البته، شما همچنان می‌توانید از نام کامل به جای اختصار برای استفاده از jQuery کنید:

$.noConflict();
jQuery(document).ready(function(){
  jQuery("button").click(function(){
    jQuery("p").text("jQuery همچنان در حال اجرا است!");
  });
});

آزمایش کنید

مثال

شما همچنین می‌توانید اختصارات خود را ایجاد کنید. noConflict() می‌تواند مرجع jQuery را بازگرداند، که می‌توانید آن را در یک متغیر ذخیره کنید تا در آینده از آن استفاده کنید. به عنوان مثال:

var jq = $.noConflict();
jq(document).ready(function(){
  jq("button").click(function(){
    jq("p").text("jQuery همچنان در حال اجرا است!");
  });
});

آزمایش کنید

مثال

اگر بلوک کد jQuery شما از اختصار $ استفاده می‌کند و نمی‌خواهید این راه‌حل سریع را تغییر دهید، می‌توانید نماد $ را به عنوان یک متغیر به روش ready ارسال کنید. در این صورت می‌توانید در داخل تابع از نماد $ استفاده کنید - و در خارج از تابع، همچنان باید از "jQuery" استفاده کنید:

$.noConflict();
jQuery(document).ready(function($){
  $("button").click(function(){
    $("p").text("jQuery همچنان در حال اجرا است!");
  });
});

آزمایش کنید

دستورالعمل هسته‌ای jQuery

برای مشاهده کلی‌ترین روش‌های هسته‌ای jQuery، لطفاً به وب‌سایت ما دستورالعمل هسته‌ای jQuery