jQuery Academy · درس

إنشاء إضافات قابلة للتهيئة وإعادة الاستخدام

طوّر إضافات تتضمن خيارات افتراضية، وتسمح للمستخدمين بتجاوز الإعدادات، واجعلها قابلة لإعادة الاستخدام في مشاريع مختلفة بأقل جهد.

الدرس 2 من 311 خطوة

إنشاء إضافات قابلة للتهيئة وإعادة الاستخدام درس مجاني في jQuery Academy على CoddyKit. هذا هو الدرس 2 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في jQuery Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة jQuery Academy 3 دروس في المجموع.

مقدمة عن الإضافات القابلة للتهيئة

مرحبًا! في هذا الدرس، ستتعلّمون كيفية جعل إضافات jQuery مرنة وسهلة التكييف. تخيّلوا إضافة يمكنها تغيير لونها أو سرعتها أو نصها بمجرد تزويدها ببعض الخيارات.

يُعدّ ذلك أمرًا بالغ الأهمية لإنشاء أدوات يمكن استخدامها في العديد من المشاريع المختلفة دون الحاجة إلى إعادة كتابة الشيفرة.

لماذا نستخدم الخيارات الافتراضية؟

ينبغي أن تعمل الإضافات مباشرةً، مع السماح أيضًا بتخصيصها. وهنا يأتي دور الخيارات الافتراضية.

  • السلوك الأساسي: توفّر الطريقة القياسية التي تعمل بها الإضافة.
  • سهولة الاستخدام: يمكن للمستخدمين تهيئة الإضافة دون تحديد كل إعداد.
  • المرونة: يمكن للمستخدمين تجاوز القيم الافتراضية لتكييف الإضافة وفق احتياجاتهم.

تعريف القيم الافتراضية للإضافة

تعرّفون الخيارات الافتراضية على هيئة كائن داخل الإضافة. ويحتوي هذا الكائن على جميع الإعدادات التي قد تستخدمها الإضافة، إلى جانب قيمها الأولية.

جرّبوا تشغيل بنية الإضافة الأساسية هذه لمعرفة كيفية التصريح عن القيم الافتراضية.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div id="myElement">Hello</div>
<script>
(function($) {
  $.fn.myPlugin = function(options) {
    // Define default settings here
    var defaults = {
      color: "blue",
      fontSize: "16px",
      message: "Default message!"
    };
    
    // For now, let's just log the defaults
    console.log("Plugin defaults:", defaults);
    
    return this; // Always return 'this' for chaining
  };
})(jQuery);

$(document).ready(function() {
  $('#myElement').myPlugin();
});
</script>

دمج خيارات المستخدم: $.extend()

للسماح للمستخدمين بتخصيص الإعدادات، يجب دمج الخيارات التي يقدّمونها مع القيم الافتراضية. وتُعدّ طريقة jQuery المسماة $.extend() مثالية لهذا الغرض.

تنشئ $.extend({}, defaults, options) كائنًا جديدًا، إذ تنسخ الخصائص من defaults أولًا، ثم تستبدلها بخصائص options إن وُجدت.

تطبيق $.extend() عمليًا

إليكم كيفية استخدام $.extend() داخل إضافتكم. لاحظوا كيف تتجاوز قيمتا المستخدم color وtext القيم الافتراضية، بينما تبقى fontSize مأخوذة من القيم الافتراضية لأنها لم تُقدَّم.

شغّلوا هذه الشيفرة وتحقّقوا من مخرجات وحدة التحكم!

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script>
(function($) {
  $.fn.myPlugin = function(options) {
    var defaults = {
      text: "Default text",
      color: "blue",
      fontSize: "16px"
    };
    
    // Merge defaults with user-provided options
    var settings = $.extend({}, defaults, options);
    
    console.log("Final settings:", settings);
    
    return this; // Keep chaining ability
  };
})(jQuery);

$(document).ready(function() {
  // User provides custom options
  $('body').myPlugin({
    text: "Custom Text!",
    color: "red"
  });
});
</script>

الوصول إلى الإعدادات المدمجة

بعد الحصول على كائن settings (الذي يحتوي على القيم الافتراضية المدمجة مع خيارات المستخدم)، يمكنكم الوصول إلى أي خاصية ببساطة باستخدام صيغة النقطة، مثل settings.color أو settings.animationSpeed.

يضمن ذلك أن تستخدم الإضافة دائمًا التهيئة الصحيحة والنهائية.

إضافة تلميحات عملية

لنبنِ إضافة تلميحات بسيطة تتيح للمستخدمين تخصيص نصها ولون خلفيتها والتأخير قبل ظهورها. يوضّح هذا المثال كيف تجعل الخيارات القابلة للتهيئة الإضافات أكثر تنوعًا بكثير.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<style>
  .coddy-tooltip { /* Use unique class name */
    position: absolute;
    background-color: #333;
    color: white;
    padding: 5px 8px;
    border-radius: 3px;
    display: none;
    font-family: sans-serif;
    font-size: 14px;
  }
</style>
<button id="hoverMe">Hover Over Me</button>
<script>
(function($) {
  $.fn.coddyTooltip = function(options) {
    var defaults = {
      text: "Default Tooltip",
      bgColor: "#333",
      textColor: "white",
      delay: 200 // ms before showing
    };
    var settings = $.extend({}, defaults, options);

    return this.each(function() {
      var $this = $(this);
      var $tooltip = $('<div class="coddy-tooltip"></div>')
                       .text(settings.text)
                       .css({
                         'background-color': settings.bgColor,
                         'color': settings.textColor
                       })
                       .appendTo('body');

      var timeoutId; // To clear previous timeouts

      $this.on('mouseenter', function() {
        clearTimeout(timeoutId);
        timeoutId = setTimeout(function() {
          var offset = $this.offset();
          $tooltip.css({
            top: offset.top - $tooltip.outerHeight() - 5,
            left: offset.left + ($this.outerWidth() / 2) - 
                   ($tooltip.outerWidth() / 2)
          }).fadeIn(100);
        }, settings.delay);
      }).on('mouseleave', function() {
        clearTimeout(timeoutId);
        $tooltip.fadeOut(100);
      });
    });
  };
})(jQuery);

$(document).ready(function() {
  // Initialize the tooltip with custom options
  $('#hoverMe').coddyTooltip({
    text: "Hello from CoddyKit!",
    bgColor: "darkblue",
    delay: 500
  });
});
</script>

التصميم من أجل إعادة الاستخدام

بالإضافة إلى التهيئة، تكون الإضافة القوية حقًا قابلة لإعادة الاستخدام. وهذا يعني إمكانية إدراجها في أي مشروع وتشغيلها دون تعارضات أو إعدادات خاصة.

  • التغليف: استخدموا IIFE ‏(function($){...})(jQuery); للحفاظ على خصوصية شيفرتكم.
  • `this.each()`: نفّذوا تكرارًا دائمًا على العناصر المحددة لتطبيق المنطق على جميع العناصر المطابقة.
  • عدم تلويث النطاق العام: تجنّبوا إنشاء متغيرات أو دوال عامة.
  • منطق مستقل: ينبغي ألا تعتمد إضافتكم على نصوص أو أنماط خارجية ما لم يوثَّق ذلك صراحةً.

أهمية `this.each()`

عندما يستدعي المستخدم إضافتكم على مجموعة مثل $('.my-class').myPlugin()، قد تعيد jQuery عدة عناصر. ويضمن النمط return this.each(function(){ ... }); تشغيل منطق الإضافة لكل عنصر فردي في تلك المجموعة.

داخل دالة الاستدعاء الخاصة بـeach، تشير this إلى عنصر DOM الحالي الذي تجري معالجته.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<script>
(function($) {
  $.fn.highlight = function(options) {
    var defaults = {
      color: "yellow"
    };
    var settings = $.extend({}, defaults, options);

    return this.each(function() {
      // 'this' refers to the current DOM element in the loop
      $(this).css('background-color', settings.color);
    });
  };
})(jQuery);

$(document).ready(function() {
  // Apply highlight to all elements with class 'item'
  $('.item').highlight({ color: "lightblue" });
});
</script>

تحقّق سريع: أفضل ممارسات الإضافات

لنختبر مدى فهمكم لبناء إضافات jQuery قابلة للتهيئة وإعادة الاستخدام!

مراجعة: قابلة للتهيئة وإعادة الاستخدام

لقد أتقنتم كيفية بناء إضافات jQuery قوية وقابلة للتكييف!

  • عرّفوا الخيارات الافتراضية لتحديد السلوك الأساسي.
  • استخدموا $.extend() من أجل دمج خيارات المستخدم، مما يتيح التخصيص.
  • استخدموا return this.each() لضمان عمل الإضافة على عناصر متعددة محددة.
  • غلّفوا شيفرتكم داخل IIFE لإتاحة إعادة الاستخدام وتجنّب التعارضات العامة.

تجعل هذه التقنيات إضافاتكم قوية ومرنة وجاهزة لأي مشروع!

البدء مجانًا

تعلم JavaScript مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
22
الدروس
48

الأسئلة الشائعة

هل درس «إنشاء إضافات قابلة للتهيئة وإعادة الاستخدام» مجاني؟

نعم — نص درس «إنشاء إضافات قابلة للتهيئة وإعادة الاستخدام» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة jQuery Academy، انتقل إلى CoddyKit PRO. تتضمن دورة jQuery Academy 3 دروس في المجموع.

ماذا ستتعلم في «إنشاء إضافات قابلة للتهيئة وإعادة الاستخدام»؟

طوّر إضافات تتضمن خيارات افتراضية، وتسمح للمستخدمين بتجاوز الإعدادات، واجعلها قابلة لإعادة الاستخدام في مشاريع مختلفة بأقل جهد. تتمرن على jQuery Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ jQuery Academy؟

لا تُشترط خبرة سابقة. jQuery Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 3.

كم من الوقت يستغرق درس «إنشاء إضافات قابلة للتهيئة وإعادة الاستخدام»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس jQuery Academy هذا؟

نعم. كل درس في jQuery Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أنماط تصميم الإضافات وتحديد النطاق
  2. إنشاء إضافات قابلة للتهيئة وإعادة الاستخدام
  3. دمج الأساليب العامة ودوال الاستدعاء
← العودة إلى jQuery Academy