jQuery Academy · leksjon

Bygge konfigurerbare og gjenbrukbare programtillegg

Utvikle programtillegg med standardalternativer som brukerne kan overstyre, og gjør dem gjenbrukbare på tvers av ulike prosjekter med minimal innsats.

Leksjon 2 av 311 trinn

Bygge konfigurerbare og gjenbrukbare programtillegg er en gratis leksjon i jQuery Academy på CoddyKit. Dette er leksjon 2 av 3. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i jQuery Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i jQuery Academy inneholder totalt 3 leksjoner.

Introduksjon til konfigurerbare programtillegg

Velkommen! I denne leksjonen lærer De hvordan De kan gjøre jQuery-programtillegg fleksible og enkle å tilpasse. Tenk Dem et programtillegg som kan endre farge, hastighet eller tekst bare ved at De oppgir noen få alternativer.

Dette er avgjørende for å lage verktøy som kan brukes i mange forskjellige prosjekter uten at koden må skrives om.

Hvorfor bruke standardalternativer?

Programtillegg bør fungere med én gang, men samtidig gi mulighet for tilpasning. Det er her standardalternativer kommer inn.

  • Grunnleggende funksjonalitet: Gir en standardmåte programtillegget fungerer på.
  • Enkelt å bruke: Brukere kan initialisere programtillegget uten å angi alle innstillingene.
  • Fleksibilitet: Brukere kan overstyre standardverdiene for å tilpasse programtillegget etter behov.

Definere standardverdier for programtillegg

De definerer standardalternativer som et objekt inne i programtillegget. Dette objektet inneholder alle innstillingene programtillegget kan bruke, sammen med startverdiene deres.

Prøv å kjøre denne grunnleggende strukturen for et programtillegg for å se hvordan standardverdier deklareres.

<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>

Slå sammen brukeralternativer: $.extend()

For å la brukere tilpasse innstillingene må De slå sammen alternativene de oppgir, med standardverdiene. jQuerys $.extend()-metode passer perfekt til dette.

$.extend({}, defaults, options) oppretter et nytt objekt ved først å kopiere egenskaper fra defaults og deretter overskrive dem med egenskaper fra options, dersom de finnes.

$.extend() i praksis

Slik bruker De $.extend() i programtillegget. Legg merke til hvordan brukerens color og text overstyrer standardverdiene, mens fontSize beholdes fra standardverdiene fordi den ikke ble oppgitt.

Kjør denne koden og se på utskriften i konsollen!

<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>

Få tilgang til sammenslåtte innstillinger

Når De har settings-objektet (som inneholder de sammenslåtte standardverdiene og brukeralternativene), kan De enkelt få tilgang til en hvilken som helst egenskap ved hjelp av punktnotasjon, for eksempel settings.color eller settings.animationSpeed.

Dette sikrer at programtillegget alltid bruker den riktige, endelige konfigurasjonen.

Praktisk verktøytips-programtillegg

La oss lage et enkelt programtillegg for verktøytips som lar brukere tilpasse teksten, bakgrunnsfargen og forsinkelsen før verktøytipset vises. Dette viser hvordan konfigurerbare alternativer gjør programtillegg langt mer allsidige.

<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>

Utforme for gjenbruk

I tillegg til konfigurasjon bør et virkelig robust programtillegg kunne gjenbrukes. Det betyr at det kan tas i bruk i ethvert prosjekt og fungere uten konflikter eller spesifikk konfigurering.

  • Innkapsling: Bruk en IIFE (function($){...})(jQuery); for å holde koden privat.
  • `this.each()`: Iterer alltid over de valgte elementene for å bruke logikken på alle elementene som ble funnet.
  • Ingen forurensning av globalt omfang: Unngå å opprette globale variabler eller funksjoner.
  • Selvstendig logikk: Programtillegget bør ikke være avhengig av eksterne skript eller stiler med mindre dette er uttrykkelig dokumentert.

Betydningen av `this.each()`

Når en bruker kaller programtillegget på et utvalg, for eksempel $('.my-class').myPlugin(), kan jQuery returnere flere elementer. Mønsteret return this.each(function(){ ... }); sikrer at logikken i programtillegget kjøres for hvert enkelt element i utvalget.

Inne i each-tilbakekallet viser this til DOM-elementet som behandles.

<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>

Hurtigsjekk: anbefalte fremgangsmåter for programtillegg

La oss teste forståelsen Deres av hvordan man bygger konfigurerbare og gjenbrukbare jQuery-programtillegg!

Oppsummering: Konfigurerbare og gjenbrukbare

De har nå lært å bygge kraftige og tilpasningsdyktige jQuery-programtillegg!

  • Definer standardalternativer for grunnleggende funksjonalitet.
  • Bruk $.extend() til å slå sammen brukeralternativer og tillate tilpasning.
  • Bruk return this.each() for å sikre at programtillegget fungerer på flere valgte elementer.
  • Innkapsle koden i en IIFE for gjenbruk og for å unngå globale konflikter.

Disse teknikkene gjør programtilleggene robuste, fleksible og klare for ethvert prosjekt!

Gratis å komme i gang

Lær deg JavaScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
22
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Bygge konfigurerbare og gjenbrukbare programtillegg» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien jQuery Academy, inkludert «Bygge konfigurerbare og gjenbrukbare programtillegg», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i jQuery Academy inneholder totalt 3 leksjoner.

Hva lærer jeg i «Bygge konfigurerbare og gjenbrukbare programtillegg»?

Utvikle programtillegg med standardalternativer som brukerne kan overstyre, og gjør dem gjenbrukbare på tvers av ulike prosjekter med minimal innsats. Du øver på jQuery Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med jQuery Academy?

Ingen tidligere erfaring er nødvendig. jQuery Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 3.

Hvor lang tid tar leksjonen «Bygge konfigurerbare og gjenbrukbare programtillegg»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne jQuery Academy-leksjonen?

Ja. Alle jQuery Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Designmønstre og scope for programtillegg
  2. Bygge konfigurerbare og gjenbrukbare programtillegg
  3. Integrere offentlige metoder og tilbakekall
← Tilbake til jQuery Academy