jQuery UI API - Widget-Factory

Kategorie

Dienstprogramme | Widgets

jQuery.widget( name [, base ], prototype ) Verwendung

Beschreibung:Erstellen Sie zustandsbehaftete jQuery-Plugins unter Verwendung derselben Abstraktion wie alle jQuery-UI-Widgets.

jQuery.widget( name [, base ], prototype )

Parameters Type Type
name String Der Name des zu erstellenden Widgets, einschließlich des Namespace.
Basis Function() Das Basis-Widget, von dem geerbt werden soll. Muss ein Konstruktor sein, der mit dem Schlüsselwort `new` instanziiert werden kann. Standardmäßig ist es jQuery.Widget.
prototype PlainObject Das Objekt, das als Widget-Prototyp verwendet werden soll.

Sie können$.Widgetein Objekt als Basis, von der geerbt wird, oder Sie können explizit ein neues Widget von Grund auf neu basierend auf einem vorhandenen jQuery-UI- oder Drittanbieter-Steuerelement erstellen. Wenn Sie ein Widget mit demselben Namen definieren, um vom Basis-Widget zu erben, können Sie das Widget sogar entsprechend erweitern.

jQuery UI enthält viele zustandsbehaftete Widgets, daher unterscheidet sich das Verwendungsmuster geringfügig von typischen jQuery-Plugins. Alle jQuery-UI-Widgets verwenden dasselbe Muster, das von der Widget-Factory definiert wird. Wenn Sie also einmal gelernt haben, eines zu verwenden, wissen Sie, wie Sie die anderen Widgets verwenden.

Hinweis: Dieses Kapitel verwendet dasProgressbar Widgetals Demonstrationsbeispiel, aber die Syntax gilt für jedes Widget.

Initialisierung

Um den Zustand des Widgets zu verfolgen, müssen wir den vollständigen Lebenszyklus des Widgets einführen. Der Lebenszyklus beginnt, wenn das Widget initialisiert wird. Um ein Widget zu initialisieren, rufen wir einfach das Plugin auf einem oder mehreren Elementen auf.

$( "#elem" ).progressbar();

Dies initialisiert jedes Element im jQuery-Objekt. Im obigen Beispiel ist die Element-ID `progressbar`."elem"。

Optionen

Weilprogressbar()wird es ohne Argumente aufgerufen, wird das Widget mit Standardoptionen initialisiert. Wir können bei der Initialisierung eine Reihe von Optionen übergeben, um die Standardoptionen zu überschreiben:

$( "#elem" ).progressbar({ value: 20 });

Wir können so viele Optionen übergeben, wie nötig, und alle Optionen, die wir nicht übergeben, verwenden ihre Standardwerte.

Sie können mehrere Optionsargumente übergeben, die zu einem einzigen Objekt zusammengeführt werden (ähnlich wie$.extend( true, target, object1, objectN )`$.extend`). Dies ist nützlich, um einige Einstellungen für alle Instanzen zu überschreiben und Optionen zwischen Instanzen gemeinsam zu nutzen:

var options = { modal: true, show: "slow" };
$( "#dialog1" ).dialog( options );
$( "#dialog2" ).dialog( options, { autoOpen: false });

Alle bei der Initialisierung übergebenen Optionen werden tief kopiert, wodurch sichergestellt wird, dass Objekte später geändert werden können, ohne das Widget zu beeinflussen. Arrays sind die einzige Ausnahme; sie werden unverändert referenziert. Diese Ausnahme dient der ordnungsgemäßen Unterstützung der Datenbindung, bei der die Datenquelle eine Referenz sein muss.

Standardwerte werden in den Eigenschaften des Widgets gespeichert, sodass wir die von jQuery UI festgelegten Werte überschreiben können. Nach der folgenden Einstellung werden beispielsweise alle zukünftigen progressbar-Instanzen standardmäßig den Wert 80 haben:

$.ui.progressbar.prototype.options.value = 80;

Optionen sind ein integraler Bestandteil des Zustands des Widgets, daher können wir Optionen auch nach der Initialisierung festlegen. Wir werden die option-Methode später sehen.

Methoden

Nachdem das Widget initialisiert wurde, können wir seinen Zustand abfragen oder Aktionen auf dem Widget ausführen. Alle Aktionen nach der Initialisierung werden durch Aufrufen von Methoden ausgeführt. Um eine Methode auf dem Widget aufzurufen, übergeben wir den Methodennamen an das jQuery-Plugin. Zum Beispiel, um dievalue()`value` 方法,我们可以使用:

$( "#elem" ).progressbar( "value" );

如果方法接受参数,我们可以在方法名之后传递它们。例如,要将参数 `2` 传递给40aufvalue()`value` 方法,我们可以使用:

$( "#elem" ).progressbar( "value", 40 );

与 jQuery 中的其他方法一样,大多数小部件方法返回 jQuery 对象:

$( "#elem" )
  .progressbar( "value", 90 )
  .addClass( "almost-done" );

每个小部件都有自己的一组方法,这些方法基于该小部件提供的功能。然而,有些方法存在于所有小部件上,下面将详细解释。

Ereignisse

所有小部件都有与其各种行为关联的事件,以便在状态改变时通知你。对于大多数小部件,当事件被触发时,其名称会加上小部件名称的小写形式作为前缀。例如,我们可以绑定 progressbar 的change`change` 事件,它在值改变时触发。

$( "#elem" ).bind( "progressbarchange", function() {
  alert( "The value has changed!" );
});

每个事件都有一个对应的回调,可作为选项使用。如果需要,我们可以挂接到 progressbar 的change`change` 回调,而不是绑定progressbarchange`change` 事件。

$( "#elem" ).progressbar({
  change: function() {
    alert( "The value has changed!" );
  }
});

所有小部件都有一个change`create` 事件,它在实例化时触发。

实例化

Die Widget-Instanz wird unter Verwendung des vollständigen Namens des Widgets als Schlüssel injQuery.data()`data` gespeichert. Daher können Sie den folgenden Code verwenden, um das Instanzobjekt des Progressbar-Widgets von einem Element abzurufen.

$( "#elem" ).data( "ui-progressbar" );

Ob ein Element an ein bestimmtes Widget gebunden ist, kann mit dem:data`:ui-progressbar`-Selektor erkannt werden.

$( "#elem" ).is( ":data( 'ui-progressbar' )" ); // true
$( "#elem" ).is( ":data( 'ui-draggable' )" ); // false

Du kannst auch:dataum eine Liste aller Elemente zu erhalten, die Instanzen eines bestimmten Widgets sind.

$( ":data( 'ui-progressbar' )" );

Eigenschaften

Alle Widgets haben die folgenden Eigenschaften:

  • defaultElement`defaultElement`: Das Element, das verwendet werden soll, wenn beim Erstellen der Widget-Instanz kein Element angegeben wurde. Zum Beispiel, da dasdefaultElementJa"<div>",$.ui.progressbar({ value: 50 })`defaultElement` des Progressbars ein neu erstelltes<div>`div` ist, können Sie eine Progressbar-Widget-Instanz instanziieren, ohne ein Element zu übergeben.
  • document`document`: Das Dokument, das das Element des Widgets enthält.documentNützlich, wenn Sie mit dem Widget innerhalb eines iframe interagieren müssen.
  • element`element`: Ein jQuery-Objekt, das das Element enthält, das zum Instanziieren des Widgets verwendet wird. Wenn Sie mehrere Elemente auswählen und aufrufen.myWidget()`.progressbar()`, für jedes Element wird eine separate Widget-Instanz erstellt. Daher enthält diese Eigenschaft immer ein Element.
  • namespace`namespace`: Der Ort im globalen jQuery-Objekt, an dem der Widget-Prototyp gespeichert ist. Zum Beispiel,"ui"vonnamespace`$.ui.draggable` gibt an, dass der Widget-Prototyp gespeichert ist in$.ui。
  • options`$.ui.draggable`. `options`: Ein Objekt, das die aktuell vom Widget verwendeten Optionen enthält. Bei der Instanziierung werden alle vom Benutzer bereitgestellten Optionen automatisch zusammengeführt mit$.myNamespace.myWidget.prototype.optionsden im Widget-Prototyp definierten Standardwerten. Vom Benutzer angegebene Optionen überschreiben die Standardwerte.
  • uuid`uuid`: Eine eindeutige Ganzzahl, die den Widget-Bezeichner darstellt.
  • version`version`: Die String-Version des Widgets. Bei jQuery UI-Widgets ist diese Eigenschaft auf die Version von jQuery UI gesetzt, die vom Widget verwendet wird. Plugin-Entwickler müssen diese Eigenschaft explizit in ihren Prototypen festlegen.
  • widgetEventPrefix`widgetEventPrefix`: Das Präfix, das den Ereignisnamen des Widgets vorangestellt wird. Zum Beispieldas Draggable-WidgetvonwidgetEventPrefixJa"drag", also wenn ein Draggable erstellt wird, lautet der Ereignisname"dragcreate"`dragcreate`. Standardmäßig ist derwidgetEventPrefix`widgetEventPrefix` sein Name.Hinweis: Diese Eigenschaft ist veraltet und wird in zukünftigen Versionen entfernt. Ereignisnamen werden zu widgetName:eventName geändert (zum Beispiel `progressbarcreate`)."draggable:create")。
  • widgetFullName`widgetFullName`: Der vollständige Name des Widgets, einschließlich des Namespace. Für$.widget( "myNamespace.myWidget", {} ), widgetFullNameder Fortschrittsbalken, dies wird `ui-progressbar` sein."myNamespace-myWidget"。
  • widgetName`name`: Der Name des Widgets. Für$.widget( "myNamespace.myWidget", {} ),widgetNameder Fortschrittsbalken, dies wird `progressbar` sein."myWidget"。
  • window`window`: Das Fenster, das das Element des Widgets enthält.windowNützlich, wenn Sie mit dem Widget innerhalb eines iframe interagieren müssen.

jQuery.Widget Verwendung des Basis-Widgets

Beschreibung:Das Basis-Widget, das von der Widget Factory verwendet wird.

Schnellnavigation

Optionen Methoden Ereignisse

Optionen Type Beschreibung Standard
disabled Boolean Wenn festgelegt auftrue`true`, das Widget ist deaktiviert.

Codebeispiele:

Initialisieren Sie ein Widget mit der angegebenendisabled`disabled`-Option:

$( ".selector" ).widget({ disabled: true });
    

Abrufen oder Festlegen derdisabled`disabled`-Option nach der Initialisierung:

// getter
var disabled = $( ".selector" ).widget( "option", "disabled" );
 
// setter
$( ".selector" ).widget( "option", "disabled", true );
    
false
hide Boolean oder Number oder String oder Object Ob und wie Animationen verwendet werden, um das Element auszublenden.

Mehrere Typen werden unterstützt:

  • Boolean: Wenn gesetzt auffalse`false`, es wird keine Animation verwendet und das Element wird sofort ausgeblendet. Wenn auftrue`true`, wird das Element mit der Standarddauer und dem Standard-Easing ausgeblendet.
  • Number: Das Element wird mit der angegebenen Dauer und dem Standard-Easing ausgeblendet.
  • String: Das Element wird unter Verwendung des angegebenen Effekts ausgeblendet. Der Wert kann der Name einer integrierten jQuery-Animationsmethode sein, wie z. B."slideUp"`slideUp`, oder einen jQuery-UI-Effektnamen, wie z. B."fold"In beiden oben genannten Fällen verwendet der Effekt die Standarddauer und das Standard-Easing.
  • Object: Wenn der Wert ein Objekt ist, danneffect、delay、durationundeasingEigenschaft angegeben ist. WenneffectEigenschaft enthält den Namen einer jQuery-Methode, wird diese Methode verwendet; andernfalls wird sie als Name eines jQuery-UI-Effekts betrachtet. Wenn Sie einen jQuery-UI-Effekt verwenden, der zusätzliche Einstellungen unterstützt, können Sie diese Einstellungen in das Objekt aufnehmen, und sie werden an den Effekt übergeben. Wenndurationodereasingausgelassen wird, wird der Standardwert verwendet. Wenneffectausgelassen wird, dann"fadeOut". Wenndelayausgelassen wird, wird keine Verzögerung verwendet.

Codebeispiele:

Initialisieren Sie das Widget mit dem angegebenenhideoption:

$( ".selector" ).widget({ hide: { effect: "explode", duration: 1000 } });
    

Nach der Initialisierung abrufen oder festlegenhideoption:

// getter
var hide = $( ".selector" ).widget( "option", "hide" );
 
// setter
$( ".selector" ).widget( "option", "hide", { effect: "explode", duration: 1000 } );
    
null
show Boolean oder Number oder String oder Object Ob das Element mit einer Animation angezeigt werden soll und wie die Anzeige animiert werden soll.

Unterstützt mehrere Typen:

  • Boolean: Wenn gesetzt auffalse, wird keine Animation verwendet und das Element wird sofort angezeigt. Wenn auftrue, wird das Element mit der Standarddauer und dem Standard-Easing eingeblendet.
  • Zahl: Das Element wird mit der angegebenen Dauer und dem Standard-Easing eingeblendet.
  • String: Das Element wird mit dem angegebenen Effekt angezeigt. Der Wert kann der Name einer integrierten jQuery-Animationsmethode sein, wie z. B."slideDown", oder es kann ein jQuery-UI-Effektname sein, wie z. B."fold". In beiden oben genannten Fällen verwendet der Effekt die Standarddauer und das Standard-Easing.
  • Object: Wenn der Wert ein Objekt ist, danneffect、delay、durationundeasingEigenschaft angegeben ist. WenneffectEigenschaft enthält den Namen einer jQuery-Methode, wird diese Methode verwendet; andernfalls wird sie als Name eines jQuery-UI-Effekts betrachtet. Wenn Sie einen jQuery-UI-Effekt verwenden, der zusätzliche Einstellungen unterstützt, können Sie diese Einstellungen in das Objekt aufnehmen, und sie werden an den Effekt übergeben. Wenndurationodereasingausgelassen wird, wird der Standardwert verwendet. Wenneffectausgelassen wird, dann"fadeIn". Wenndelayausgelassen wird, wird keine Verzögerung verwendet.

Codebeispiele:

Initialisieren Sie das Widget mit dem angegebenenshowoption:

$( ".selector" ).widget({ show: { effect: "blind", duration: 800 } });
    

Nach der Initialisierung abrufen oder festlegenshowoption:

// getter
var show = $( ".selector" ).widget( "option", "show" );
 
// setter
$( ".selector" ).widget( "option", "show", { effect: "blind", duration: 800 } );
    
null

Methoden Gibt zurück Beschreibung
_create() jQuery (nur Plugin) _create()Methode ist der Konstruktor des Widgets. Sie nimmt keine Argumente entgegen, aberthis.elementundthis.optionsist bereits gesetzt.
  • Diese Methode akzeptiert keine Argumente.

Codebeispiele:

Setzt die Hintergrundfarbe des Widget-Elements basierend auf einer Option.

_create: function() {
  this.element.css( "background-color", this.options.color );
}
    
_delay( fn [, delay ] ) Number Ruft die bereitgestellte Funktion nach der angegebenen Verzögerung auf. Behältthisden korrekten Kontext bei. Im WesentlichensetTimeout()。
verwendetclearTimeout()gibt die Timeout-ID zurück.
  • fn
    Typ: Function() oder String
    Beschreibung: Die aufzurufende Funktion. Sie kann auch der Name einer Methode des Widgets sein.
  • delay
    Typ: Number
    Beschreibung: Die Anzahl der Millisekunden, die gewartet wird, bevor die Funktion aufgerufen wird. Standardwert ist0。

Codebeispiele:

Nach 100 Millisekunden, auf dem Widget, rufe die_foo()Methode.

this._delay( this._foo, 100 );
    
_destroy() jQuery (nur Plugin) Die öffentlichedestroy()Methode löscht alle öffentlichen Daten, Ereignisse usw. Sie stellt die benutzerdefinierte, widget-spezifische Bereinigung dar._destroy()。
  • Diese Methode akzeptiert keine Argumente.

Codebeispiele:

Entfernt eine Klasse aus dem Element des Widgets, wenn das Widget zerstört wird.

_destroy: function() {
  this.element.removeClass( "my-widget" );
}
    
_focusable( element ) jQuery (nur Plugin) Legt, wenn ein Element fokussiert wird, dieui-state-focusanzuwendende Klasse fest.element。
  • element
    Typ: jQuery
    Beschreibung: Das Element, auf das das Fokussierverhalten angewendet werden soll.

Codebeispiele:

Wendet Fokussierungsstil auf eine Gruppe von Elementen innerhalb des Widgets an:

this._focusable( this.element.find( ".my-items" ) );
    
_getCreateEventData() Objekt Alle Widgets lösencreateEvents aus. Standardmäßig werden keine Daten im Event bereitgestellt, aber diese Methode gibt ein Objekt zurück, das übergeben wird alscreateEvent-Daten.
  • Diese Methode akzeptiert keine Argumente.

Codebeispiele:

in RichtungcreateDer Event-Handler übergibt die Optionen des Widgets als Argument.

_getCreateEventData: function() {
  return this.options;
}
    
_getCreateOptions() Objekt Diese Methode ermöglicht es dem Widget, eine benutzerdefinierte Methode zum Definieren von Optionen während der Initialisierung festzulegen. Vom Benutzer bereitgestellte Optionen überschreiben die von dieser Methode zurückgegebenen Optionen, d. h., sie überschreiben die Standardoptionen.
  • Diese Methode akzeptiert keine Argumente.

Codebeispiele:

Macht das id-Attribut des Widget-Elements als Option verfügbar.

_getCreateOptions: function() {
  return { id: this.element.attr( "id" ) };
}
    
_hide( element, option [, callback ] ) jQuery (nur Plugin) Blendet ein Element mithilfe einer integrierten Animationsmethode oder eines benutzerdefinierten Effekts aus. Für möglicheoptionWerte, siehehide。
  • element
    Typ: jQuery
    Beschreibung: Das auszublendende Element.
  • option
    Typ: Object
    Beschreibung: Einstellungen, die definieren, wie das Element ausgeblendet wird.
  • callback
    Typ: Function()
    Beschreibung: Ein Callback, der aufgerufen wird, nachdem das Element vollständig ausgeblendet wurde.

Codebeispiele:

ÜbergibthideOptionen für die benutzerdefinierte Animation.

this._hide( this.element, this.options.hide, function() {
 
  // Remove the element from the DOM when it's fully hidden.
  $( this ).remove();
});
    
_hoverable( element ) jQuery (nur Plugin) Legt beim Hovern über ein Element dieui-state-hoveranzuwendende Klasse fest.element. Event-Handler werden bei destroy automatisch bereinigt.
  • element
    Typ: jQuery
    Beschreibung: Das Element, auf das das Hoverable-Verhalten angewendet werden soll.

Codebeispiele:

Beim Hovern über das Element, auf alle Elemente innerhalb des Elements,divHoverable-Styling anwenden.

this._hoverable( this.element.find( "div" ) );
    
_init() jQuery (nur Plugin) Das Konzept der Widget-Initialisierung unterscheidet sich von der Erstellung. Immer wenn das Plugin ohne Argumente oder nur mit einem Options-Hash aufgerufen wird, wird das Widget initialisiert. Diese Methode wird beim Erstellen des Widgets eingebunden.

Hinweis: Wenn logische Aktionen ausgeführt werden sollen, wenn das Widget erfolgreich ohne Argumente aufgerufen wird, kann die Initialisierung nur zu diesem Zeitpunkt behandelt werden.

  • Diese Methode akzeptiert keine Argumente.

Codebeispiele:

Wenn dieautoOpenOption gesetzt ist, dann rufen Sie dieopen()Methode.

_init: function() {
  if ( this.options.autoOpen ) {
    this.open();
  }
}
    
_off( element, eventName ) jQuery (nur Plugin) Entbindet Event-Handler vom angegebenen Element.
  • element
    Typ: jQuery
    Beschreibung: Das Element, von dem Event-Handler entbunden werden sollen. Im Gegensatz zu dem_on()Methode,_off()Ein Element ist in der Methode erforderlich.
  • eventName
    Typ: String
    Beschreibung: Ein oder mehrere durch Leerzeichen getrennte Ereignistypen.

Codebeispiele:

Hebt die Bindung aller Click-Events vom Element des Widgets auf.

this._off( this.element, "click" );
    
_on( [suppressDisabledCheck ] [, element ], handlers ) jQuery (nur Plugin) Delegation über Selektoren innerhalb des Ereignisnamens wird unterstützt, zum Beispiel"click .foo"。_on()Die Methode bietet mehrere Vorteile gegenüber der direkten Ereignisbindung:
  • Behält den entsprechendenthisKontext innerhalb von Handlern.
  • Behandelt deaktivierte Widgets automatisch: Wenn das Widget deaktiviert ist oder das Ereignis auf einem Element mit derui-state-disabledKlasse auftritt, wird der Event-Handler nicht aufgerufen. Kann durch densuppressDisabledCheckParameter überschrieben werden.
  • Event-Handler erhalten automatisch Namensräume und werden beim Zerstören automatisch bereinigt.
  • suppressDisabledCheck(Standard:false)
    Typ: Boolean
    Beschreibung: Ob die Deaktivierungsprüfung umgangen werden soll.
  • element
    Typ: jQuery
    Beschreibung: Das Element, an das die Event-Handler gebunden werden. Wenn kein Element angegeben wird,this.elementes wird für nicht delegierte Ereignisse verwendet,das Widget-Elementwird für delegierte Ereignisse verwendet.
  • Handler
    Typ: Object
    Beschreibung: Eine Map, in der String-Schlüssel Ereignistypen darstellen, optionale Selektoren für die Delegierung verwendet werden und Werte die für die Ereignisse aufgerufenen Handler-Funktionen darstellen.

Codebeispiele:

Verhindert das Standardverhalten aller angeklickten Links innerhalb des Widget-Elements.

this._on( this.element, {
  "click a": function( event ) {
    event.preventDefault();
  }
});
    
_setOption( key, value ) jQuery (nur Plugin) Für jede einzelne Option wird die_setOptions()Methode aufgerufen. Der Widget-Status wird aktualisiert, während Änderungen vorgenommen werden.
  • key
    Typ: String
    Beschreibung: Der Name der Option, die festgelegt werden soll.
  • value
    Typ: Object
    Beschreibung: Der Wert, der für die Option festgelegt werden soll.

Codebeispiele:

Wenn sich dieheightoderwidthOption des Widgets ändert, aktualisieren Sie das Element des Widgets.

_setOption: function( key, value ) {
  if ( key === "width" ) {
    this.element.width( value );
  }
  if ( key === "height" ) {
    this.element.height( value );
  }
  this._super( key, value );
}
    
_setOptions( options ) jQuery (nur Plugin) Wenn dieoption()Methode aufgerufen wird, unabhängig davon, in welcher Form sie aufgerufen wirdoption(). Wenn Sie prozessorintensive Handler aufgrund mehrerer Optionsänderungen ändern müssen, ist das Überschreiben dieser Methode sinnvoll.
  • options
    Typ: Object
    Beschreibung: Der Wert, der für die Option festgelegt werden soll.

Codebeispiele:

Wenn sich dieheightoderwidthOption des Widgets ändert, rufen Sie dieresizeMethode.

_setOptions: function( options ) {
  var that = this,
    resize = false;
 
  $.each( options, function( key, value ) {
    that._setOption( key, value );
    if ( key === "height" || key === "width" ) {
      resize = true;
    }
  });
 
  if ( resize ) {
    this.resize();
  }
}
    
_show( element, option [, callback ] ) jQuery (nur Plugin) Zeigt ein Element mithilfe einer integrierten Animationsmethode oder eines benutzerdefinierten Effekts an. Für möglicheoptionWerte, sieheshow。
  • element
    Typ: jQuery
    Beschreibung: Das Element, das angezeigt werden soll.
  • option
    Typ: Object
    Beschreibung: Einstellungen, die definieren, wie das Element angezeigt wird.
  • callback
    Typ: Function()
    Beschreibung: Ein Callback, der aufgerufen wird, nachdem das Element vollständig angezeigt wurde.

Codebeispiel:

Benutzerdefinierte Animation übergebenshowOption.

this._show( this.element, this.options.show, function() {
 
  // Focus the element when it's fully visible.
  this.focus();
}
    
_super( [arg ] [, ... ] ) jQuery (nur Plugin) Ruft die gleichnamige Methode auf dem übergeordneten Widget mit allen angegebenen Argumenten auf. Im Wesentlichen,.call()。
  • arg
    Typ: Object
    Beschreibung: Null oder mehr Argumente, die an die Methode des übergeordneten Widgets übergeben werden.

Codebeispiel:

HandletitleOptionsaktualisierungen und Aufruf der Methode des übergeordneten Widgets_setOption()um den internen Speicher der Optionen zu aktualisieren.

_setOption: function( key, value ) {
  if ( key === "title" ) {
    this.element.find( "h3" ).text( value );
  }
  this._super( key, value );
}
    
_superApply( arguments ) jQuery (nur Plugin) Ruft die gleichnamige Methode auf dem übergeordneten Widget mit einem Array von Argumenten auf. Im Wesentlichen,.apply()。
  • Argumente
    Typ: Array
    Beschreibung: Ein Array von Argumenten, die an die Methode des übergeordneten Widgets übergeben werden.

Codebeispiel:

HandletitleOptionsaktualisierungen und Aufruf der Methode des übergeordneten Widgets_setOption()um den internen Speicher der Optionen zu aktualisieren.

_setOption: function( key, value ) {
  if ( key === "title" ) {
    this.element.find( "h3" ).text( value );
  }
  this._superApply( arguments );
}
    
_trigger( type [, event ] [, data ] ) Boolean Löst ein Ereignis und seinen zugehörigen Callback aus. Die Option mit diesem Namen entspricht dem Typ, der als Callback aufgerufen wird.

Der Ereignisname ist eine Zeichenkette in Kleinbuchstaben aus dem Widget-Namen und dem Typ.

Hinweis: Wenn Daten angegeben werden, müssen alle drei Parameter angegeben werden. Wenn kein Ereignis übergeben wird, übergeben Sienull。

Wenn das Standardverhalten verhindert wird, gibt es zurückfalse, andernfalls gibt sie zurücktrue. Wenn der Handler zurückgibtfalseoder aufruftevent.preventDefault(), wird das Standardverhalten verhindert.

  • type
    Typ: String
    Beschreibung:typeDer Name sollte mit der Callback-Option übereinstimmen. Der vollständige Ereignistyp wird automatisch generiert.
  • event
    Typ: Event
    Beschreibung: Das ursprüngliche Ereignis, das dieses Ereignis ausgelöst hat, nützlich, um den Listenern Kontext zu bieten.
  • data
    Typ: Object
    Beschreibung: Ein mit dem Ereignis verknüpfter Daten-Hash.

Codebeispiel:

Wenn eine Taste gedrückt wird, löse das aussearchEreignis.

this._on( this.element, {
  keydown: function( event ) {
 
    // Pass the original event so that the custom search event has
    // useful information, such as keyCode
    this._trigger( "search", event, {
 
      // Pass additional information unique to this event
      value: this.element.val()
    });
  }
});
    
destroy() jQuery (nur Plugin) Entfernen Sie die Widget-Funktionalität vollständig. Dadurch wird das Element in seinen Zustand vor der Initialisierung zurückversetzt.
  • Diese Methode akzeptiert keine Argumente.

Codebeispiel:

Zerstören Sie das Widget, wenn ein beliebiger Anker des Widgets angeklickt wird.

this._on( this.element, {
  "click a": function( event ) {
    event.preventDefault();
    this.destroy();
  }
});
    
disable() jQuery (nur Plugin) Deaktivieren Sie das Widget.
  • Diese Methode akzeptiert keine Argumente.

Codebeispiel:

Deaktivieren Sie das Widget, wenn ein beliebiger Anker des Widgets angeklickt wird.

this._on( this.element, {
  "click a": function( event ) {
    event.preventDefault();
    this.disable();
  }
});
    
enable() jQuery (nur Plugin) Aktivieren Sie das Widget.
  • Diese Methode akzeptiert keine Argumente.

Codebeispiel:

Aktivieren Sie das Widget, wenn ein beliebiger Anker des Widgets angeklickt wird.

this._on( this.element, {
  "click a": function( event ) {
    event.preventDefault();
    this.enable();
  }
});
    
option( optionName ) Objekt Ruft den Wert ab, der derzeit dem angegebenen zugeordnet istoptionNamezugehöriger Wert.
  • optionName
    Typ: String
    Beschreibung: Der Name der Option, die abgerufen werden soll.

Codebeispiel:

Ruft denwidthWert der Option ab.

this.option( "width" );
    
option() PlainObject Ruft ein Objekt ab, das Schlüssel/Wert-Paare enthält, die den aktuellen Options-Hash des Widgets repräsentieren.
  • Diese Methode akzeptiert keine Argumente.

Codebeispiel:

Protokollieren Sie die Schlüssel/Wert-Paare jeder Widget-Option zum Debuggen.

var options = this.option();
for ( var key in options ) {
  console.log( key, options[ key ] );
}
    
option( optionName, value ) jQuery (nur Plugin) Legt mit dem angegebenenoptionNameden Wert der zugehörigen Widget-Option fest.
  • optionName
    Typ: String
    Beschreibung: Der Name der Option, die festgelegt werden soll.
  • value
    Typ: Object
    Beschreibung: Der Wert, der für die Option festgelegt werden soll.

Codebeispiel:

Setzt diewidthOption auf500。

this.option( "width", 500 );
    
option( options ) jQuery (nur Plugin) Legt eine oder mehrere Optionen für das Widget fest.
  • options
    Typ: Object
    Beschreibung: Die Options-Wert-Paare, die festgelegt werden sollen.

Codebeispiel:

Setzt dieheightundwidthOption auf500。

this.option({
  width: 500,
  height: 500
});
    
widget() jQuery Gibt ein Objekt zurück, das das ursprüngliche Element oder andere zugehörige generierte Elemente enthältjQueryObjekt.
  • Diese Methode akzeptiert keine Argumente.

Codebeispiel:

Wenn das Widget erstellt wird, platzieren Sie einen roten Rahmen um das ursprüngliche Element des Widgets.

_create: function() {
  this.widget().css( "border", "2px solid red" );
}
    

Ereignisse Type Beschreibung
create( event, ui ) widgetcreate Wird ausgelöst, wenn das Widget erstellt wird.
  • event
    Typ: Event
  • ui
    Typ: Object

Hinweis:uiDas Objekt ist leer; es wird hier aus Gründen der Konsistenz mit anderen Ereignissen aufgeführt.

Codebeispiel:

Initialisieren Sie das Widget mit dem angegebenen create-Callback:

$( ".selector" ).widget({
  create: function( event, ui ) {}
});
    

Binden Sie einen Event-Listener an das widgetcreate-Ereignis:

$( ".selector" ).on( "widgetcreate", function( event, ui ) {} );
    
Weitere Erweiterungen