jQuery 3.3

jQuery.noConflict()




jquery

jQuery.noConflict ([removeAll]) إرجاع: Object

الوصف: التخلي عن التحكم في jQuery للمتغير $ .

  • الإصدار المضاف: 1.0 jQuery.noConflict ([removeAll])

    • حذف الكل
      اكتب: Boolean
      A Boolean يشير إلى ما إذا كان سيتم إزالة جميع متغيرات jQuery من النطاق العالمي (بما في ذلك jQuery نفسه).

تستخدم العديد من مكتبات JavaScript $ كدالة أو اسم متغير ، تمامًا كما يفعل jQuery. في حالة jQuery ، يكون $ مجرد اسم مستعار jQuery ، لذلك تتوفر جميع الوظائف بدون استخدام $ . إذا كنت بحاجة إلى استخدام مكتبة JavaScript أخرى إلى جانب jQuery ، $.noConflict() التحكم في $ back إلى المكتبة الأخرى باستخدام استدعاء $.noConflict() . يتم حفظ المراجع القديمة من $ أثناء تهيئة jQuery؛ noConflict() ببساطة يعيد لهم.

إذا تم تحميل إصدارين من jQuery (وهو أمر غير مستحسن) $.noConflict( true ) ، $.noConflict( true ) استدعاء $.noConflict( true ) من الإصدار الثاني إلى إرجاع متغيرات النطاق jQuery ذات المستوى العام إلى تلك الخاصة بالنسخة الأولى.

<script src="other_lib.js"></script>
<script src="jquery.js"></script>
<script>
$.noConflict();
// Code that uses other library's $ can follow here.
</script>

هذه التقنية فعالة بشكل خاص بالاقتران مع قدرة. .ready() على الاسم المستعار لجسم jQuery ، حيث أنه في رد الاتصال تم تمريره إلى. .ready() يمكنك استخدام $ إذا كنت ترغب دون خوف من النزاعات في وقت لاحق:

<script src="other_lib.js"></script>
<script src="jquery.js"></script>
<script>
$.noConflict();
jQuery( document ).ready(function( $ ) {
  // Code that uses jQuery's $ can follow here.
});
// Code that uses other library's $ can follow here.
</script>

إذا لزم الأمر ، يمكنك تحرير اسم jQuery كذلك عن طريق تمرير true كوسيطة لهذه الطريقة. نادرًا ما يكون ذلك ضروريًا ، وإذا كان يجب عليك القيام بذلك (على سبيل المثال ، إذا كنت بحاجة إلى استخدام إصدارات متعددة من مكتبة jQuery في نفس الصفحة) ، فيجب أن تعتبر أن معظم المكونات الإضافية تعتمد على وجود متغير jQuery و قد لا تعمل بشكل صحيح في هذا الموقف.

أمثلة:

عيّن الكائن الأصلي الذي تمت الإشارة إليه بواسطة $ back to $.

jQuery.noConflict();
// Do something with jQuery
jQuery( "div p" ).hide();
// Do something with another library's $()
$( "content" ).style.display = "none";

ارجع الاسم المستعار $ ، ثم أنشئ وظيفة لتزويد $ كاسم مستعار مسجّل داخل نطاق الدالة. داخل الوظيفة ، لا يتوفر كائن $ الأصلي. يعمل هذا بشكل جيد مع معظم المكونات الإضافية التي لا تعتمد على أي مكتبة أخرى.

jQuery.noConflict();
(function( $ ) {
  $(function() {
    // More code using $ as alias to jQuery
  });
})(jQuery);
 
// Other code using $ as an alias to the other library

أنشئ اسمًا مستعارًا مختلفًا بدلاً من jQuery لاستخدامه في بقية النص البرمجي.

var j = jQuery.noConflict();
 
// Do something with jQuery
j( "div p" ).hide();
 
// Do something with another library's $()
$( "content" ).style.display = "none";

نقل jQuery بالكامل إلى مساحة اسم جديدة في كائن آخر.

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

نتيجة:

// Do something with the new jQuery
dom.query( "div p" ).hide();
 
// Do something with another library's $()
$( "content" ).style.display = "none";
 
// Do something with another version of jQuery
jQuery( "div > p" ).hide();

قم بتحميل نسختين من jQuery (غير مستحسن). بعد ذلك ، قم باستعادة متغيرات النطاق الموسّعة عالميًا في jQuery إلى jQuery الأول الذي تم تحميله.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.noConflict demo</title>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<div id="log">
  <h3>Before $.noConflict(true)</h3>
</div>
<script src="https://code.jquery.com/jquery-1.6.2.js"></script>
 
<script>
var $log = $( "#log" );
 
$log.append( "2nd loaded jQuery version ($): " + $.fn.jquery + "<br>" );
 
// Restore globally scoped jQuery variables to the first version loaded
// (the newer version)
 
jq162 = jQuery.noConflict( true );
 
$log.append( "<h3>After $.noConflict(true)</h3>" );
$log.append( "1st loaded jQuery version ($): " + $.fn.jquery + "<br>" );
$log.append( "2nd loaded jQuery version (jq162): " + jq162.fn.jquery + "<br>" );
</script>
 
</body>
</html>

عرض: