Heim Web-Frontend js-Tutorial Detaillierte Analyse benutzerdefinierter JavaScript-Ereignisse

Detaillierte Analyse benutzerdefinierter JavaScript-Ereignisse

Feb 01, 2018 am 10:27 AM
javascript js 自定义

Dieser Artikel enthält hauptsächlich eine detaillierte Analyse von benutzerdefinierten JavaScript-Ereignissen, mit denen Benutzer mit Browsern interagieren können. In diesem Fall besteht unsere Codelogik im Allgemeinen darin, vom Benutzer eingegebene Informationen zu sammeln und die Rechtmäßigkeit der Informationen zu überprüfen , und verwenden Sie AJAX. Freunde, die mit dem Server interagieren müssen, können darauf verweisen. Ich hoffe, es kann allen helfen.

Veranstaltung

Das allgemeine technische Niveau ist begrenzt. Wenn es Fehler gibt, korrigieren Sie mich bitte.

Ereignisse sind eine Möglichkeit für Benutzer, mit dem Browser zu interagieren. Wenn ein Benutzer beispielsweise eine Funktion registriert, können wir nach dem Ausfüllen der grundlegenden Informationen auf die Schaltfläche „Senden“ klicken, um die Registrierungsfunktion zu implementieren. Zum Abschließen dieser Funktion ist lediglich ein Klickereignis erforderlich. Wir definieren das Betriebsverhalten vorab und führen unser vorab festgelegtes Verhalten aus, wenn der Benutzer auf die Schaltfläche „Senden“ klickt. In diesem Fall besteht unsere Codelogik im Allgemeinen darin, die vom Benutzer eingegebenen Informationen zu sammeln, die Rechtmäßigkeit der Informationen zu überprüfen und Verwenden Sie AJAX, um mit dem Server zu interagieren.

Dieser Prozess ist genau so, wie wir normalerweise eine Funktion kapseln und dann die Funktion aufrufen. Das Ereignis ähnelt tatsächlich dem Prozess der Funktionsdefinition und des Funktionsaufrufs, mit der Ausnahme, dass der Aufruf der Ereignisfunktion dem Browser mitgeteilt wird durch einige Vorgänge des Benutzers.

Zunächst einmal hat uns der Browser eine Liste von Ereignissen bereitgestellt, einschließlich Klick, Tastendruck usw. Warum müssen wir Ereignisse anpassen? Tatsächlich ist es eine genauere Beschreibung unseres Verhaltens. Am Beispiel der obigen Benutzerregistrierung können wir ein Ereignis mit dem Namen saveMessage definieren. Dieses Ereignis wird ausgelöst, wenn auf die Schaltfläche „Senden“ geklickt wird. Es scheint jedoch nicht anders zu sein als bei einem normalen Funktionsaufruf. Der Unterschied zwischen Aufruf und Ereignisauslösung besteht darin, dass von uns selbst ausgeführte Funktionen Funktionsaufrufe sind und Funktionen, die nicht von uns ausgeführt werden, ereignisausgelöst sind. Schauen Sie sich den folgenden Code an:


window.onload = function(){
 var demo = document.getElementById("demo");
 demo.onclick = handler;
 function handler(){
  console.log("aaa");
 }
}
Nach dem Login kopieren

Wenn wir auf die Schaltfläche klicken, wird aaa gedruckt, und es ist offensichtlich, dass die Funktion nicht von uns aufgerufen wird, aber es ist so Wenn wir die Funktion handler() direkt aufrufen, können wir aaa drucken, aber dies wird von uns aufgerufen, es handelt sich also um einen Funktionsaufruf.

Die Rolle benutzerdefinierter Ereignisse

Benutzerdefinierte Ereignisse sind Funktionen, die wir entsprechend dem Ereignismechanismus des Browsers anpassen. Benutzerdefinierte Ereignisse können zu besseren Erklärungen für unsere Verarbeitungsfunktionen und auch zu besseren Verarbeitungsprozessen für unsere Plug-Ins führen. Angenommen, wir haben eine weitere Anforderung: Rufen Sie einen Datensatz vom Server ab, zeigen Sie ihn als Liste in HTML an und identifizieren Sie dann das erste Datenelement. Wenn wir eine vorhandene Verarbeitungsfunktion verwenden, schreiben wir es möglicherweise so:


dataTable("url");
$("table").find("input[type='checkbox']:first").prop("checked",true);
Nach dem Login kopieren

Dies kann unseren Zweck nicht erreichen, da JS Single-Threaded und AJAX asynchron ist. Wenn der Code $("table").find("input[ When type=' checkbox']:first").prop("checked",true) wird ausgeführt, die von uns benötigten Daten wurden noch nicht abgerufen. Es ist offensichtlich unklug, die interne Implementierung des Plug-Ins zu ändern. Ein akzeptables Plug-In muss über eine angemessene Rückruffunktion (oder ein benutzerdefiniertes Ereignis) verfügen. Wenn es jetzt eine Rückruffunktion gibt, die die Liste erfolgreich zeichnet, können wir dies tun Die Rückruffunktion wird als Ereignis betrachtet. Wir können diesem Ereignis Ereignisoperationen hinzufügen, eine Verarbeitungsfunktion definieren und das Plug-In dann diese Verarbeitungsfunktion ausführen lassen, wenn die Liste erfolgreich gezeichnet wurde.

Benutzerdefinierte Ereignisimplementierung

Wir simulieren die nativen Ereignisse des Browsers, um benutzerdefinierte Ereignisse zu implementieren (en: benutzerdefinierter Ereignisname, fn: Ereignisverarbeitungsfunktion, addEvent: benutzerdefinierte Ereignisse hinzufügen für DOM-Elemente, TriggerEvent: Benutzerdefinierte Ereignisse auslösen):


window.onload = function(){
 var demo = document.getElementById("demo");
 demo.addEvent("test",function(){console.log("handler1")});
 demo.addEvent("test",function(){console.log("handler2")});
 demo.onclick = function(){
  this.triggerEvent("test");
 }
}
Element.prototype.addEvent = function(en,fn){
 this.pools = this.pools || {};
 if(en in this.pools){
  this.pools[en].push(fn);
 }else{
  this.pools[en] = [];
  this.pools[en].push(fn);
 }
}
Element.prototype.triggerEvent = function(en){
 if(en in this.pools){
  var fns = this.pools[en];
  for(var i=0,il=fns.length;i<il;i++){
   fns[i]();
  }
 }else{
  return;
 }
}
Nach dem Login kopieren

Die von uns ausgeführten Funktionen sind Funktionsaufrufe, und die von uns nicht ausgeführten Funktionen sind Es kann sein Da die Funktion nicht von uns aufgerufen wird, ist es ein Problem, wie der Aufrufer weiß, welche Funktionen aufgerufen werden sollen. Daher müssen einige Einschränkungen zwischen dem Hinzufügen der Ereignisfunktion und dem Auslösen der Ereignisfunktion hinzugefügt werden Von den beiden gibt es einen Ereignispool, auf den jeder zugreifen kann. Fügen Sie das Ereignis und die entsprechende Verarbeitungsfunktion in diesen Pool ein, und gehen Sie zum Pool, um das auszulösende Ereignis zu finden die entsprechende Verarbeitungsfunktion, also Mit dem Code, den wir oben haben.

Es kann viele Verarbeitungsfunktionen für dieselbe Funktion (Ereignis) geben, daher benötigen wir eine Sammlung zum Speichern dieser Verarbeitungsfunktionen. Zu diesem Zeitpunkt sollten wir die beiden Lösungen JSON oder Array widerspiegeln Schlüssel: Wert, für die Verarbeitungsfunktion hat der Name keine Auswirkung, daher verwenden wir ein Array, um zu speichern, welche Funktionen dieser Satz von Funktionen verarbeitet. Daher benötigen wir diesmal auch eine Beschreibung für diesen Satz von Verarbeitungsfunktionen wir brauchen JSON. -->{eventName:[]}.

Verwenden Sie ein vereinfachtes modales BootStrap-Fenster, um die Rolle benutzerdefinierter Ereignisse zu demonstrieren:


window.onload = function(){
 var show = document.getElementById("show");
 var hide = document.getElementById("hide");
 var content = document.getElementById("content");
 show.onclick = function(){
  content.modal("show");
 }
 hide.onclick = function(){
  content.modal("hide");
 }
 content.addEvent("show",function(){alert("show before")});
 content.addEvent("shown",function(){
  document.getElementById("input").focus();
  alert("show after");
 }); 
}
;(function(ep){
 ep.addEvent = function(en,fn){
  this.pools = this.pools || {};
  if(en in this.pools){
   this.pools[en].push(fn);
  }else{
   this.pools[en] = [];
   this.pools[en].push(fn);
  }
 }
 ep.triggerEvent = function(en){
  if(en in this.pools){
   var fns = this.pools[en];
   for(var i=0,il=fns.length;i<il;i++){
    fns[i]();
   }
  }else{
   return;
  }
 }
 ep.modal = function(t){
  switch(t){
   case "show":
    this.triggerEvent("show");
    this.style.display = "block";
    setTimeout(function(){this.triggerEvent("shown")}.bind(this),0);//该定时器主要是为了在视觉上先看见content,在弹出消息
    break;
   case "hide":
    this.style.display = "none";
    break;
   default:
    break;
  }
 }

}(Element.prototype));
Nach dem Login kopieren

Wir können die Ereignisse vor dem Popup vordefinieren Das Fenster erscheint und die Verarbeitungsfunktion nach dem Erscheinen wird ausgeführt, wenn das Popup-Fenster das entsprechende Ereignis auslöst.

Verwandte Empfehlungen:

v-on-Bindung eines benutzerdefinierten Ereignisses in der Vue.js-Komponente

Grundkenntnisse zum Schreiben benutzerdefinierter Ereignisse in JavaScript

Wie um benutzerdefinierte Ereignisse in JavaScript zu erstellen


Das obige ist der detaillierte Inhalt vonDetaillierte Analyse benutzerdefinierter JavaScript-Ereignisse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Apr 03, 2024 am 11:55 AM

Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

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

PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen Dec 18, 2023 pm 03:39 PM

Mit der rasanten Entwicklung der Internetfinanzierung sind Aktieninvestitionen für immer mehr Menschen zur Wahl geworden. Im Aktienhandel sind Kerzendiagramme eine häufig verwendete Methode der technischen Analyse. Sie können den sich ändernden Trend der Aktienkurse anzeigen und Anlegern helfen, genauere Entscheidungen zu treffen. In diesem Artikel werden die Entwicklungskompetenzen von PHP und JS vorgestellt, der Leser wird zum Verständnis des Zeichnens von Aktienkerzendiagrammen geführt und es werden spezifische Codebeispiele bereitgestellt. 1. Aktien-Kerzendiagramme verstehen Bevor wir uns mit dem Zeichnen von Aktien-Kerzendiagrammen befassen, müssen wir zunächst verstehen, was ein Kerzendiagramm ist. Candlestick-Charts wurden von den Japanern entwickelt

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.

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Die Beziehung zwischen js und vue Die Beziehung zwischen js und vue Mar 11, 2024 pm 05:21 PM

Die Beziehung zwischen js und vue: 1. JS als Eckpfeiler der Webentwicklung; 2. Der Aufstieg von Vue.js als Front-End-Framework; 3. Die komplementäre Beziehung zwischen JS und Vue; Vue.

See all articles