نواة jQuery - طريقة 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>
بالإضافة إلى ذلك، بإرسال معامل صحيح إلى هذه الطريقة، يمكننا إرجاع سيطرة $ و jQuery إلى المكتبة الأصلية. فكر في ذلك قبل استخدامها!
هذه هي نسخة أكثر تطرفًا من طريقة noConflict، لأنها ستعيد تعريف جي كويير بشكل كامل. عادة ما تستخدم في حالات استثنائية، مثل رغبتك في تضمين جي كويير في بيئة تعتمد بشكل كبير على التداخل. ملاحظة: من المحتمل جدًا أن يؤدي استدعاء هذه الطريقة إلى فشل الإضافات.
مثال
مثال 1
تسجيل الاسم البديل $ للتحويل إلى الاسم الأصلي
jQuery.noConflict(); jQuery("div p").hide(); // استخدام جي كويير $("content").style.display = "none"; // استخدام $ من مكتبة أخرى
مثال 2
استعادة استخدام الاسم البديل $، ثم إنشاء وتنفيذ دالة، حيث يظل $ اسمًا بديلًا لجي كويير في نطاق هذه الدالة. يصبح الاسم البديل $ غير صالح في هذه الدالة. هذه الدالة فعالة جدًا للعديد من الإضافات التي لا تعتمد على مكتبات أخرى:
jQuery.noConflict(); (function($) { $(function() { // كود استخدام $ كاسم بديل لجي كويير }); })(jQuery); ... // كود مكتبات أخرى تستخدم $ كاسم بديل
مثال 3
يمكن دمج jQuery.noConflict() مع تقليل الكود (ready) لجعل الكود أكثر تكدسًا:
jQuery.noConflict()(function(){ // كود جي كويير }); ... // كود مكتبات أخرى تستخدم $ كاسم بديل
مثال 4
إنشاء اسم بديل جديد لاستخدامه في المكتبات القادمة لاستخدام جي كويير
var j = jQuery.noConflict(); j("div p").hide(); // كود جي كويير $("content").style.display = "none"; // كود $() مبني على مكتبة أخرى
مثال 5
تحويل جي كويير بشكل كامل إلى نطاق جديد
var dom = {}; dom.query = jQuery.noConflict(true);
النتيجة:
dom.query("div p").hide(); // كود جي كويير الجديد $("content").style.display = "none"; // كود $() من مكتبة أخرى jQuery("div > p").hide(); // نسخة أخرى من كود جي كويير