أربعة أشكال الاختلافات جاهزة () - ما هو الفرق؟

StackOverflow https://stackoverflow.com/questions/1158953

  •  18-09-2019
  •  | 
  •  

سؤال

لقد رأيت أربع طرق مختلفة لإخبار JQUERY لتنفيذ وظيفة عند جاهز المستند. هل هذه ما يعادلها؟

$(document).ready(function () {
  alert('$(document).ready()');
});  

$().ready(function () {
  alert('$().ready()');
}); 

$(function () {
  alert('$()');
});     

jQuery(function ($) {
  alert('jQuery()');
}); 
هل كانت مفيدة؟

المحلول

ليس هناك فرق.

$ بالضبط مثل jQuery. وبعد إذا قمت بعرض المصدر غير المستوعي، فسترى var $ = jQuery = ... أو شيء لهذا التأثير.

ال jQuery تعمل الدالة من نوع المعلمة، إذا كانت وظيفة، فإنها تعاملها كما $(document).ready(...)

دعا jQuery بدون افتراضيات المعلمة لاستخدام document. وبعد وبالتالي $() و $(document) متطابقة. جربه في Firebug.

نصائح أخرى

إعادة: تعليقات Geroge IV بخصوص $ () == $ (المستند) صحيح. من المصدر غير المستوعي (INIT هو ما يسمى داخليا):

init: function( selector, context ) {
    // Make sure that a selection was provided
    selector = selector || document;

أيضا من المصدر، لعمل نسخة احتياطية المحادثات السابقة:

// HANDLE: $(function)
    // Shortcut for document ready
    } else if ( jQuery.isFunction( selector ) )
        return jQuery( document ).ready( selector );

هذا يجب أن يكون Wiki المجتمع. لقد كنت مهتما دائما بالأعمال الداخلية في JQuery، والآن كان لدي ذريعة لبدء البحث :-)

كما أنه يجب ذكرها, ، هذا الرمز الذي تقوم به إلى وظيفة سيتم استخدامه داخل الوظيفة. علي سبيل المثال:

$(function(jQuery) {
   // now I can use jQuery instead $
   jQuery("body").append("<div></div>"); // adds div to the end of body element
}); 

إذا كنت تريد استخدام $ - يمكنك ترك عمارة الوظيفة في هذه الوضع فارغ

المثال الحقيقي يمكنك أن تجد هنا http://jsfiddle.net/yura_syedin/bngd4/

هنا واحد آخر - يبدأ مثل هذا ...

(function (jQuery) {

ثم لإنهاء ...

})(jQuery);

مثال هنا:http://jsfiddle.net/c2qzw/23/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top