Heim Web-Frontend js-Tutorial Analyse der Verwendung benutzerdefinierter Ereignisse in JavaScript_Javascript-Kenntnissen

Analyse der Verwendung benutzerdefinierter Ereignisse in JavaScript_Javascript-Kenntnissen

May 16, 2016 pm 04:25 PM
javascript 事件 用法 自定义

Die Beispiele in diesem Artikel beschreiben die Verwendung benutzerdefinierter Ereignisse in JavaScript. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

In der Web-Front-End-Entwicklung verwenden viele Leute möglicherweise keine benutzerdefinierten Ereignisse von js, aber wenn Sie ein relativ großes Projekt durchführen, insbesondere wenn mehrere Personen zusammenarbeiten, sind benutzerdefinierte Ereignisse sehr wichtig. Was sind also benutzerdefinierte Ereignisse in js? Schauen wir uns zunächst ein Beispiel an:
Frontend-Entwickler A kapselt eine Funktion:

Code kopieren Der Code lautet wie folgt:
Funktion move(){
warning(a); //Dies stellt N Codezeilen dar
}

Nach einer Weile wird Front-End-Entwickler B diese Funktion basierend auf A erweitern, also wird er so schreiben:
Code kopieren Der Code lautet wie folgt:
Funktion move(){
warning(a); //Dies stellt N Codezeilen dar
warning(b); //Dies stellt N Codezeilen dar
}

Haben Sie ein Problem gefunden? B sollte auf Namens- und Konfliktprobleme mit den Variablen, Funktionen usw. von A achten. Nach einer Weile wird Front-End-Entwickler C auch diese Funktion erweitern, also:
Code kopieren Der Code lautet wie folgt:
Funktion move(){
warning(a); //Dies stellt N Codezeilen dar
warning(b); //Dies stellt N Codezeilen dar
warning(c); //Dies stellt N Codezeilen dar
}

Es wird zu diesem Zeitpunkt sehr frustrierend sein und ich bin sicher, dass es nicht einfach sein wird, Code in C zu schreiben. Die Möglichkeit, dieses Problem zu lösen, besteht darin, benutzerdefinierte Ereignisse zu verwenden. Wir wissen, dass dasselbe Ereignis zu einem Element hinzugefügt werden kann, ohne sich gegenseitig zu beeinflussen, wie zum Beispiel:
Code kopieren Der Code lautet wie folgt:
window.addEventListener('click',function(){
alarm(1);
} ,false);
window.addEventListener('click',function(){
alarm(2);
} ,false);

Wenn Sie auf die Seite klicken, werden sowohl 1 als auch 2 angezeigt. Anschließend können wir diese Methode verwenden, um unsere Funktion zu definieren:
Code kopieren Der Code lautet wie folgt:
window.addEventListener('move',function(){
alarm(3);
} ,false);
window.addEventListener('move',function(){
alarm(4);
} ,false);

Auf diese Weise werden beim Ausführen von move(); 3 und 4 angezeigt. Der Umzug ist hier ein benutzerdefiniertes Ereignis, bei dem es sich tatsächlich um eine Funktion handelt

Sehen wir uns an, wie Parameter an den Event-Handler übergeben werden:

Code kopieren Der Code lautet wie folgt:
//Eine Funktion mit Parametern in eine Funktion ohne Parameter kapseln
Funktion createFunction(obj, strFunc) {
var args = []; //Argumente definieren, um die an den Event-Handler
übergebenen Parameter zu speichern If (!obj) obj = window; //Wenn es eine globale Funktion ist, obj=window; //Die an den Event-Handler
übergebenen Parameter abrufen for (var i = 2; i < arguments.length; i ) args.push(arguments[i]);
//Verwenden Sie eine Funktion ohne Parameter, um den Aufruf des Ereignishandlers
zu kapseln Rückgabefunktion() {
          obj[strFunc].apply(obj, args); // Parameter an den angegebenen Event-Handler übergeben
}
}
Funktion class1() {
}
class1.prototype = {
show: function() {
This.onShow();
},
onShow: function() { }
}
Funktion objOnShow(userName) {
alarm("Hallo", Benutzername);
}
Funktionstest() {
var obj = new class1();
var userName = "test";
​ obj.onShow = createFunction(null, "objOnShow", userName);
Obj.show();
}

„Da der Ereignismechanismus nur den Namen einer Funktion ohne Parameterinformationen übergibt, können keine Parameter übergeben werden.“ „Um dieses Problem zu lösen, können Sie es auch andersherum betrachten.“ Überlegen Sie, wie Sie Parameter übergeben, aber überlegen Sie, wie Sie einen Event-Handler ohne Parameter erstellen. Dieses Programm wird auf der Grundlage des Event-Handlers mit Parametern erstellt und ist ein äußeres Paket. „Das „Programm“ ist hier die Funktion createFunction die Apply-Funktion zum Kapseln von Funktionen mit Parametern in parameterlose Funktionen. Schauen wir uns abschließend an, wie Sie mehrere Bindungen benutzerdefinierter Ereignisse implementieren:

Code kopieren Der Code lautet wie folgt:
// Benutzerdefinierte Ereignisse unterstützen mehrere Bindungen
// Funktionen mit Parametern in Funktionen ohne Parameter kapseln
Funktion createFunction(obj, strFunc) {
var args = []; //Argumente definieren, um die an den Event-Handler
übergebenen Parameter zu speichern If (!obj) obj = window; //Wenn es eine globale Funktion ist, obj=window; //Die an den Event-Handler
übergebenen Parameter abrufen for (var i = 2; i < arguments.length; i ) args.push(arguments[i]);
//Verwenden Sie eine Funktion ohne Parameter, um den Aufruf des Ereignishandlers
zu kapseln Rückgabefunktion() {
          obj[strFunc].apply(obj, args); // Parameter an den angegebenen Event-Handler übergeben
}
}
Funktion class1() {
}
class1.prototype = {
show: function() {
          if (this.onShow) {
for (var i = 0; i < this.onShow.length; i ) {
This.onShow[i]();
            }
}
},
attachmentOnShow: function(_eHandler) {
If (!this.onShow) { this.onShow = []; This.onShow.push(_eHandler);
}
}
Funktion objOnShow(userName) {
alarm("Hallo", Benutzername);
}
Funktion objOnShow2(testName) {
alarm("show:" testName);
}
Funktionstest() {
var obj = new class1();
var userName = "Ihr Name";
Obj.attachOnShow(createFunction(null, "objOnShow", userName));
Obj.attachOnShow(createFunction(null, "objOnShow2", "test message"));
Obj.show();
}

Wir sehen, dass die Grundidee der attachmentOnShow-Methode darin besteht, das Array zu pushen. Tatsächlich können wir die Ereignisverarbeitungsfunktion auch nach Abschluss der Ereignisausführung entfernen


Code kopieren Der Code lautet wie folgt:
//Encapsuler des fonctions avec paramètres dans des fonctions sans paramètres
fonction createFunction(obj, strFunc) {
var args = []; //Définir des arguments pour stocker les paramètres transmis au gestionnaire d'événements
If (!obj) obj = window; //S'il s'agit d'une fonction globale, obj=window; //Récupère les paramètres transmis au gestionnaire d'événements
pour (var i = 2; i < arguments.length; i ) args.push(arguments[i]);
//Utilisez une fonction sans paramètre pour encapsuler l'appel du gestionnaire d'événements
Fonction de retour() {
          obj[strFunc].apply(obj, args); // Passer les paramètres au gestionnaire d'événements spécifié
>
>
fonction classe1() {
>
classe1.prototype = {
show : function() {
          if (this.onShow) {
pour (var i = 0; i < this.onShow.length; i ) {
This.onShow[i]();
            }
>
},
attachOnShow : function(_eHandler) { // Attacher l'événement
Si (!this.onShow) { this.onShow = []>
This.onShow.push(_eHandler);
},
detachOnShow : function(_eHandler) { // Supprimer l'événement
Si (!this.onShow) { this.onShow = []>
This.onShow.pop(_eHandler);
>
>
fonction objOnShow(userName) {

alert("bonjour," nomutilisateur);
>
function objOnShow2(testName) {
alert("show:" nom_test);
>
fonction test() {
var obj = new class1();
var userName = "votre nom";
Obj.attachOnShow(createFunction(null, "objOnShow", userName));
Obj.attachOnShow(createFunction(null, "objOnShow2", "test message"));
Obj.show();
obj.detachOnShow(createFunction(null, "objOnShow", userName));
Obj.show(); // Supprime un et affiche le reste
obj.detachOnShow(createFunction(null, "objOnShow2", "test message"));
Obj.show(); // Supprime les deux et n'affiche ni l'un ni l'autre
>

J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So richten Sie schnell einen benutzerdefinierten Avatar in Netflix ein So richten Sie schnell einen benutzerdefinierten Avatar in Netflix ein Feb 19, 2024 pm 06:33 PM

Ein Avatar auf Netflix ist eine visuelle Darstellung Ihrer Streaming-Identität. Benutzer können über den Standard-Avatar hinausgehen, um ihre Persönlichkeit auszudrücken. Lesen Sie diesen Artikel weiter, um zu erfahren, wie Sie in der Netflix-App ein benutzerdefiniertes Profilbild festlegen. So legen Sie schnell einen benutzerdefinierten Avatar in Netflix fest. In Netflix gibt es keine integrierte Funktion zum Festlegen eines Profilbilds. Sie können dies jedoch tun, indem Sie die Netflix-Erweiterung in Ihrem Browser installieren. Installieren Sie zunächst ein benutzerdefiniertes Profilbild für die Netflix-Erweiterung in Ihrem Browser. Sie können es im Chrome Store kaufen. Öffnen Sie nach der Installation der Erweiterung Netflix in Ihrem Browser und melden Sie sich bei Ihrem Konto an. Navigieren Sie zu Ihrem Profil in der oberen rechten Ecke und klicken Sie

Analysieren Sie die Verwendung und Klassifizierung von JSP-Kommentaren Analysieren Sie die Verwendung und Klassifizierung von JSP-Kommentaren Feb 01, 2024 am 08:01 AM

Klassifizierung und Verwendungsanalyse von JSP-Kommentaren JSP-Kommentare werden in zwei Typen unterteilt: einzeilige Kommentare: Mit der Endung kann nur eine einzelne Codezeile kommentiert werden. Mehrzeilige Kommentare: Beginnend mit /* und endend mit */ können Sie mehrere Codezeilen kommentieren. Beispiel für einen einzeiligen Kommentar Beispiel für einen mehrzeiligen Kommentar/**Dies ist ein mehrzeiliger Kommentar*Kann mehrere Codezeilen kommentieren*/Verwendung von JSP-Kommentaren JSP-Kommentare können zum Kommentieren von JSP-Code verwendet werden, um ihn leichter lesbar zu machen

So passen Sie die Tastenkombinationseinstellungen in Eclipse an So passen Sie die Tastenkombinationseinstellungen in Eclipse an Jan 28, 2024 am 10:01 AM

Wie kann ich die Tastenkombinationseinstellungen in Eclipse anpassen? Als Entwickler ist die Beherrschung von Tastenkombinationen einer der Schlüssel zur Effizienzsteigerung beim Codieren in Eclipse. Als leistungsstarke integrierte Entwicklungsumgebung bietet Eclipse nicht nur viele Standard-Tastenkombinationen, sondern ermöglicht Benutzern auch, diese nach ihren eigenen Vorlieben anzupassen. In diesem Artikel wird erläutert, wie Sie die Tastenkombinationseinstellungen in Eclipse anpassen, und es werden spezifische Codebeispiele gegeben. Öffnen Sie Eclipse. Öffnen Sie zunächst Eclipse und geben Sie ein

Der Betriebsprozess des benutzerdefinierten Bildschirmlayouts von edius Der Betriebsprozess des benutzerdefinierten Bildschirmlayouts von edius Mar 27, 2024 pm 06:50 PM

1. Das Bild unten zeigt das Standard-Bildschirmlayout von edius. Das Standard-EDIUS-Fensterlayout ist ein horizontales Layout. Daher überlappen sich viele Fenster und das Vorschaufenster befindet sich im Einzelfenstermodus. 2. Sie können den [Dual Window Mode] über die Menüleiste [View] aktivieren, damit das Vorschaufenster gleichzeitig das Wiedergabefenster und das Aufnahmefenster anzeigt. 3. Sie können das Standard-Bildschirmlayout über [Ansichtsmenüleiste > Fensterlayout > Allgemein] wiederherstellen. Darüber hinaus können Sie auch das für Sie passende Layout anpassen und es als häufig verwendetes Bildschirmlayout speichern: Ziehen Sie das Fenster auf ein für Sie passendes Layout, klicken Sie dann auf [Ansicht > Fensterlayout > Aktuelles Layout speichern > Neu] und klicken Sie auf „Ansicht > Fensterlayout > Aktuelles Layout speichern > Neu“. Popup [Aktuelles Layout speichern] Layout] Geben Sie den Layoutnamen in das kleine Fenster ein und klicken Sie auf OK

Verwendung der WPSdatedif-Funktion Verwendung der WPSdatedif-Funktion Feb 20, 2024 pm 10:27 PM

WPS ist eine häufig verwendete Office-Software-Suite und die WPS-Tabellenfunktion wird häufig für die Datenverarbeitung und Berechnungen verwendet. In der WPS-Tabelle gibt es eine sehr nützliche Funktion, die DATEDIF-Funktion, die zur Berechnung der Zeitdifferenz zwischen zwei Datumsangaben verwendet wird. Die DATEDIF-Funktion ist die Abkürzung des englischen Wortes DateDifference. Ihre Syntax lautet wie folgt: DATEDIF(start_date,end_date,unit) wobei start_date das Startdatum darstellt.

So verwenden Sie die Exit-Funktion in der C-Sprache richtig So verwenden Sie die Exit-Funktion in der C-Sprache richtig Feb 18, 2024 pm 03:40 PM

Für die Verwendung der Exit-Funktion in der C-Sprache sind bestimmte Codebeispiele erforderlich. In der C-Sprache müssen wir häufig die Ausführung des Programms zu Beginn des Programms beenden oder das Programm unter bestimmten Bedingungen beenden. Die C-Sprache stellt die Funktion „exit()“ zur Implementierung dieser Funktion bereit. In diesem Artikel wird die Verwendung der Funktion „exit()“ vorgestellt und entsprechende Codebeispiele bereitgestellt. Die Funktion „exit()“ ist eine Standardbibliotheksfunktion in der Sprache C und in der Header-Datei enthalten. Seine Funktion besteht darin, die Ausführung des Programms zu beenden und kann eine Ganzzahl annehmen

Wie kann ich die X- und Y-Achse in Excel anpassen? (So ​​passen Sie die Skala der Excel-Koordinatenachse an) Wie kann ich die X- und Y-Achse in Excel anpassen? (So ​​passen Sie die Skala der Excel-Koordinatenachse an) Mar 14, 2024 pm 02:10 PM

In einer Excel-Tabelle müssen Sie manchmal Koordinatenachsen einfügen, um den sich ändernden Trend der Daten intuitiver zu erkennen. Einige Freunde wissen immer noch nicht, wie man Koordinatenachsen in die Tabelle einfügt. Als nächstes werde ich Ihnen zeigen, wie Sie die Koordinatenachsenskala in Excel anpassen. Methode zum Einfügen der Koordinatenachse: 1. Wählen Sie in der Excel-Oberfläche die Daten aus. 2. Klicken Sie in der Einfügeoberfläche auf , um ein Säulendiagramm oder Balkendiagramm einzufügen. 3. Wählen Sie in der erweiterten Oberfläche den Grafiktyp aus. 4. Klicken Sie in der Rechtsklick-Oberfläche der Tabelle auf Daten auswählen. 5. In der erweiterten Benutzeroberfläche können Sie sie anpassen.

Ausführliche Erklärung und Einführung in die Verwendung der MySQL-ISNULL-Funktion Ausführliche Erklärung und Einführung in die Verwendung der MySQL-ISNULL-Funktion Mar 01, 2024 pm 05:24 PM

Die Funktion ISNULL() in MySQL ist eine Funktion, mit der ermittelt wird, ob ein angegebener Ausdruck oder eine angegebene Spalte NULL ist. Es gibt einen booleschen Wert zurück, 1, wenn der Ausdruck NULL ist, andernfalls 0. Die Funktion ISNULL() kann in der SELECT-Anweisung oder zur bedingten Beurteilung in der WHERE-Klausel verwendet werden. 1. Die grundlegende Syntax der Funktion ISNULL(): ISNULL(Ausdruck), wobei Ausdruck der Ausdruck ist, um zu bestimmen, ob er NULL ist oder

See all articles