0Pricing
jQuery Academy · Lektion

Öffentliche Methoden und Callbacks integrieren

Fügen Sie Ihren Plugins öffentliche Methoden für die externe Interaktion hinzu und integrieren Sie Callback-Funktionen, damit Benutzer auf bestimmte Plugin-Ereignisse reagieren können.

Öffentliche Methoden und Callbacks integrieren ist eine kostenlose jQuery Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des jQuery Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der jQuery Academy-Kurs umfasst insgesamt 3 Lektionen.

Mit Ihren Plugins interagieren

Hervorragende Plugins funktionieren nicht nur eigenständig. Sie ermöglichen Benutzern auch nach der Initialisierung die Interaktion mit ihnen! In dieser Lektion lernen Sie, wie Sie öffentliche Methoden zur externen Steuerung und Callback-Funktionen für benutzerdefinierte Reaktionen hinzufügen.

  • Öffentliche Methoden: Funktionen, die Benutzer für eine initialisierte Plugin-Instanz aufrufen können.
  • Callbacks: Funktionen, die ausgeführt werden, wenn bestimmte Ereignisse innerhalb Ihres Plugins eintreten.

Grundlagen von Plugins wiederholt

Zur Erinnerung: jQuery-Plugins werden häufig in einen Immediately Invoked Function Expression (IIFE) eingeschlossen, um eine Verschmutzung des globalen Gültigkeitsbereichs zu verhindern. Diese Struktur bietet einen geschützten Bereich für die Logik und internen Variablen Ihres Plugins.

Wir bauen auf diesem vertrauten Muster auf.

(function($) {
  $.fn.myPlugin = function(options) {
    // Default settings
    var settings = $.extend({}, $.fn.myPlugin.defaults, options);

    return this.each(function() {
      var $this = $(this); // The element the plugin is applied to
      // Plugin logic goes here
      console.log("Plugin initialized on: " + $this.attr('id'));
    });
  };

  // Default options
  $.fn.myPlugin.defaults = {
    message: "Hello from plugin!"
  };
})(jQuery);

// How to use (in HTML <div id="myElement"></div>):
// $('#myElement').myPlugin();

Was sind öffentliche Methoden?

Eine öffentliche Methode ist eine von Ihrem Plugin bereitgestellte Funktion, die außerhalb seines internen Gültigkeitsbereichs aufgerufen werden kann, auch nachdem das Plugin für ein Element initialisiert wurde.

Stellen Sie sie sich als Fernbedienung für Ihr Plugin vor. Sie können ihm beispielsweise sagen, dass es etwas „zurücksetzen“, „aktualisieren“ oder einen „Wert abrufen“ soll.

Eine öffentliche Methode implementieren

Um öffentliche Methoden hinzuzufügen, speichern wir die Instanzdaten des Plugins, einschließlich seiner Methoden, normalerweise direkt im DOM-Element. Dazu verwenden wir jQuerys .data()-Methode.

Erstellen wir ein einfaches „counter“-Plugin und fügen eine getValue-Methode hinzu.

(function($) {
  $.fn.counterPlugin = function(options) {
    var settings = $.extend({
      initialValue: 0
    }, options);

    return this.each(function() {
      var $this = $(this);
      var value = settings.initialValue;

      var methods = {
        getValue: function() {
          return value;
        },
        increment: function() {
          value++;
          $this.text(value); // Update display
        },
        init: function() {
          $this.text(value); // Initial display
        }
      };

      // Store methods on the element's data
      $this.data('counterPlugin', methods);
      methods.init(); // Initialize display
    });
  };
})(jQuery);

// HTML: <div id="myCounter"></div>
// Usage: $('#myCounter').counterPlugin();
// Later: $('#myCounter').data('counterPlugin').getValue();

Öffentliche Methoden aufrufen

Sobald Ihr Plugin initialisiert und seine Methoden über .data() gespeichert wurden, können Sie direkt auf diese zugreifen und sie aufrufen.

Entscheidend ist, zunächst die gespeicherte Instanz aus dem Element abzurufen und anschließend die Methode für diese Instanz aufzurufen.

// Assume counterPlugin from previous scene is loaded

// HTML: <div id="myCounter"></div>

$(document).ready(function() {
  // Initialize the plugin
  $('#myCounter').counterPlugin({ initialValue: 5 });

  // Get the plugin instance
  var counterInstance = $('#myCounter').data('counterPlugin');

  // Call public methods
  console.log("Current value: " + counterInstance.getValue());
  counterInstance.increment();
  console.log("After increment: " + counterInstance.getValue());
});

Was sind Callbacks?

Callback-Funktionen sind Funktionen, die Sie an Ihr Plugin übergeben und die das Plugin an bestimmten Punkten während seines Lebenszyklus oder beim Eintreten bestimmter interner Ereignisse ausführt.

Sie ermöglichen es Benutzern, sich in das Verhalten Ihres Plugins „einzuklinken“ und eigene Logik hinzuzufügen, ohne den Quellcode des Plugins zu ändern.

  • Stellen Sie sie sich wie Event-Listener für interne Plugin-Aktionen vor.
  • Häufige Callbacks: onInit, onChange, onComplete.

Einen Callback implementieren

Um einen Callback zu implementieren, definieren Sie ihn zunächst in den Standardoptionen Ihres Plugins. Rufen Sie diese Funktion dann innerhalb des Plugins einfach auf, sobald das relevante Ereignis eintritt, und übergeben Sie alle nützlichen Daten.

Erweitern wir unser counter-Plugin um einen onChange-Callback.

(function($) {
  $.fn.counterPlugin = function(options) {
    var settings = $.extend({
      initialValue: 0,
      onChange: function(newValue) {} // Default empty callback
    }, options);

    return this.each(function() {
      var $this = $(this);
      var value = settings.initialValue;

      var methods = {
        getValue: function() {
          return value;
        },
        increment: function() {
          value++;
          $this.text(value);
          // Call the callback when value changes
          settings.onChange.call($this[0], value); 
        },
        init: function() {
          $this.text(value);
        }
      };

      $this.data('counterPlugin', methods);
      methods.init();
    });
  };
})(jQuery);

// Usage: See next scene!

Callback-Funktionen übergeben

Benutzer übergeben ihre benutzerdefinierten Callback-Funktionen bei der Initialisierung direkt im Optionsobjekt des Plugins. Das Plugin ruft diese Funktionen dann zum passenden Zeitpunkt auf.

Beachten Sie die Verwendung von .call($this[0], value). Dadurch verweist this innerhalb des Callbacks auf das DOM-Element, und der neue Wert wird als Argument übergeben.

// Assume counterPlugin with onChange callback is loaded

// HTML: <div id="myCounter"></div>

$(document).ready(function() {
  $('#myCounter').counterPlugin({
    initialValue: 10,
    onChange: function(newValue) {
      console.log("Counter changed to: " + newValue + " on element: " + this.id);
      if (newValue % 2 === 0) {
        $(this).css('color', 'blue');
      } else {
        $(this).css('color', 'red');
      }
    }
  });

  var counterInstance = $('#myCounter').data('counterPlugin');
  counterInstance.increment(); // Triggers callback
  counterInstance.increment(); // Triggers callback
});

Mehrere Methoden und Callbacks

Sie können mehrere öffentliche Methoden und verschiedene Callbacks definieren, um unterschiedliche Ereignisse innerhalb Ihres Plugins zu verarbeiten. So entsteht eine flexible und leistungsfähige Komponente.

  • Mit öffentlichen Methoden können Benutzer das Plugin steuern.
  • Callbacks ermöglichen es dem Plugin, den Code des Benutzers über aktuelle Vorgänge zu informieren.
(function($) {
  $.fn.advancedCounter = function(options) {
    var settings = $.extend({
      initial: 0,
      onIncrement: null, // New callback
      onDecrement: null, // New callback
      onReset: null      // New callback
    }, options);

    return this.each(function() {
      var $this = $(this);
      var value = settings.initial;

      var methods = {
        getValue: function() { return value; },
        increment: function() {
          value++;
          $this.text(value);
          if ($.isFunction(settings.onIncrement)) {
            settings.onIncrement.call($this[0], value);
          }
        },
        decrement: function() {
          value--;
          $this.text(value);
          if ($.isFunction(settings.onDecrement)) {
            settings.onDecrement.call($this[0], value);
          }
        },
        reset: function() {
          value = settings.initial;
          $this.text(value);
          if ($.isFunction(settings.onReset)) {
            settings.onReset.call($this[0], value);
          }
        },
        init: function() { $this.text(value); }
      };

      $this.data('advancedCounter', methods);
      methods.init();
    });
  };
})(jQuery);

// HTML: <div id="myAdvancedCounter"></div>
$(document).ready(function() {
  $('#myAdvancedCounter').advancedCounter({
    initial: 100,
    onIncrement: function(v) { console.log("Inc: " + v); },
    onReset: function(v) { console.log("Reset to: " + v); }
  });
  var inst = $('#myAdvancedCounter').data('advancedCounter');
  inst.increment();
  inst.reset();
});

Tipps zu öffentlichen Methoden und Callbacks

Beachten Sie beim Entwurf der öffentlichen Schnittstelle Ihres Plugins die folgenden Tipps:

  • Einheitliche Benennung: Verwenden Sie klare, aussagekräftige Namen für Methoden und Callbacks.
  • Fehlerbehandlung: Prüfen Sie vor dem Aufruf, ob es sich bei Callbacks tatsächlich um Funktionen handelt, z. B. mit $.isFunction(settings.onComplete).
  • Kontext: Verwenden Sie .call() oder .apply(), um den this-Kontext für Callbacks festzulegen, häufig auf das Element, auf das das Plugin angewendet wird.
  • Argumente: Übergeben Sie Callbacks relevante Daten, z. B. den neuen Wert oder das Ereignisobjekt.

Quiz zur Plugin-Interaktion

Betrachten Sie ein jQuery-Plugin, das für #myElement initialisiert wurde. Das Plugin verfügt über eine öffentliche Methode namens doSomething() und einen onComplete-Callback.

Welches Codefragment ruft die öffentliche Methode korrekt auf UND übergibt bei der Initialisierung einen benutzerdefinierten Callback?

Zusammenfassung und nächste Schritte

Sie beherrschen nun die Entwicklung wirklich interaktiver und flexibler jQuery-Plugins!

  • Öffentliche Methoden ermöglichen es externem Code, Ihr Plugin nach der Initialisierung zu steuern und abzufragen.
  • Callbacks bieten Erweiterungspunkte, über die Benutzer eigene Logik einschleusen und auf interne Plugin-Ereignisse reagieren können.

Diese Techniken sind entscheidend für die Entwicklung robuster, wiederverwendbarer und benutzerfreundlicher jQuery-Plugins.

Häufig gestellte Fragen

Ist die Lektion „Öffentliche Methoden und Callbacks integrieren“ kostenlos?

Ja — der vollständige Text von „Öffentliche Methoden und Callbacks integrieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des jQuery Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der jQuery Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Öffentliche Methoden und Callbacks integrieren“?

Fügen Sie Ihren Plugins öffentliche Methoden für die externe Interaktion hinzu und integrieren Sie Callback-Funktionen, damit Benutzer auf bestimmte Plugin-Ereignisse reagieren können. Du übst jQuery Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um jQuery Academy zu starten?

Keine Vorkenntnisse erforderlich. jQuery Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 3.

Wie lange dauert die Lektion „Öffentliche Methoden und Callbacks integrieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser jQuery Academy-Lektion Code schreiben und ausführen?

Ja. Jede jQuery Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Plugin-Entwurfsmuster und Scoping
  2. Konfigurierbare und wiederverwendbare Plugins erstellen
  3. Öffentliche Methoden und Callbacks integrieren
← Zurück zu jQuery Academy