Heim Web-Frontend js-Tutorial Detaillierte Einführung in verschiedene Arten von Event-Handlern in js

Detaillierte Einführung in verschiedene Arten von Event-Handlern in js

May 17, 2018 am 11:05 AM
javascript 事件 类型

Ein Ereignis ist eine bestimmte Aktion, die vom Benutzer oder vom Browser selbst ausgeführt wird, z. B. Klicken, Laden und Mouseover sind die Namen von Ereignissen.

Der Ereignisfluss beschreibt die Reihenfolge, in der Ereignisse von der Seite empfangen werden.

Event-Handler sind Funktionen, die auf Ereignisse reagieren. Der Name des Event-Handlers beginnt mit „on“. Der Name des Event-Handlers, der dem Click-Ereignis entspricht, lautet beispielsweise onclick.

Es gibt viele Möglichkeiten, Handler für Ereignisse anzugeben, z. B.: HTML-Ereignishandler, DMO-Ereignishandler der Ebene 0, DOM-Ereignishandler der Ebene 2, IE-Ereignishandler , browserübergreifende Ereignishandler.

(1) HTML-Ereignishandler

Das heißt: Schreiben Sie den Ereignishandler in das entsprechende HTML-Tag.

zB:

<input type="button" value="click me" onclick="alert("hello")" />
Nach dem Login kopieren

Nachteile: ① Es gibt einen Zeitunterschied, wenn der Benutzer das entsprechende Ereignis auslöst, sobald das HTML-Element auf der Seite angezeigt wird, und der Ereignishandler kann möglicherweise nicht ausgeführt werden Bedingungen (z. B. wurde die aufgerufene Funktion nicht analysiert) tritt ein Fehler auf. Beispiel:

<input type="button" value="click me" onclick="message()" />
Nach dem Login kopieren
<script type="text/javascript">function message(){alert("hello world");}</script>
Nach dem Login kopieren

Da sich die aufgerufene Funktion unterhalb der Schaltfläche befindet, tritt ein Fehler auf, wenn auf die Schaltfläche geklickt wird, bevor die Nachrichtenfunktion geladen ist.

②Die Kopplung zwischen HTML- und JS-Code ist zu hoch. Wenn Sie den Ereignishandler ändern möchten, müssen Sie zwei Stellen ändern: HTML-Code und Javascript-Code.

(2) DMO-Level-0-Ereignishandler

eg:
var btn=document.getElementById("myBtn");
  btn.onclick=function(){alert(this.id)};
Nach dem Login kopieren

Hinweis: Wenn sich dieser Code nach der Schaltfläche befindet, erfolgt möglicherweise eine Zeit lang keine Reaktion, egal wie Sie darauf klicken, denn in diesem code Der Ereignishandler wird vor der Ausführung nicht angegeben.

Der Ereignishandler der DMO-Ebene 0 wird als Methode des Elements betrachtet. Mit anderen Worten: Der Ereignishandler der DMO-Ebene 0 wird im Gültigkeitsbereich des Elements ausgeführt, sodass sich dies im Programm auf das aktuelle Element bezieht. Über diese kann im Event-Handler auf alle Eigenschaften und Methoden des Elements zugegriffen werden.

Auf diese Weise hinzugefügte Ereignishandler werden während der Bubbling-Phase des Ereignisflusses verarbeitet.

Sie können den angegebenen Event-Handler auch löschen. Setzen Sie einfach das Attribut des Event-Handlers auf null.

eg:
btn.onclick=null;将处理程序设置为null以后,再点击按钮不会发生任何动作。
Nach dem Login kopieren

(3) Ereignishandler auf DOM2-Ebene

Ereignis auf DOM2-Ebene definiert zwei Methoden zum Angeben und Löschen von Ereignishandlern. Diese beiden Operationen sind: addEventListener() und removeEventListner(). Alle DOM-Knoten enthalten diese beiden Methoden. Sie müssen drei Parameter akzeptieren: den zu verarbeitenden Ereignisnamen, die Verarbeitungsfunktion und den booleschen Wert. Wenn der letzte boolesche Parameter wahr ist, bedeutet dies, dass der Handler in der Erfassungsphase aufgerufen wird. Wenn er falsch ist, bedeutet dies, dass der Ereignishandler in der Bubbling-Phase aufgerufen wird.

Um beispielsweise einen Event-Handler für das Klicken auf eine Schaltfläche hinzuzufügen, können Sie den folgenden Code verwenden:

var btn=document.getElementById("myBtn");
btn.addEventListner("onclick",function(){alert("hello world");false});这里添加的事件处理程序也是依附于元素的的作用域
Nach dem Login kopieren

Der Vorteil der Verwendung von DOM2-Event-Handlern besteht darin, dass Sie mehrere Event-Handler für hinzufügen können das gleiche Element.

例:var btn=getElementById("myBtn");
btn.addEventListner("click",function(){alert(this.id);},flase);
btn.addEventListner("click",function(){alert("hello world");},flase);
Nach dem Login kopieren

Ergebnis: Zuerst wird die ID angezeigt, dann „Hallo Welt“.

Über addEventListner() hinzugefügte Ereignishandler können nur über removeEventListner entfernt werden. Die zum Entfernen verwendeten Parameter sind dieselben wie zum Hinzufügen eines Event-Handlers. Noch ein Hinweis: Anonyme Funktionen, die über addEventListner hinzugefügt wurden, können nicht gelöscht werden.

(4) IE-Ereignishandler.

Die Funktionen für das Hinzufügen und Löschen von Event-Handlern sind: attachmentEvent() und detachEvent(); diese beiden Funktionen erhalten die gleichen zwei Parameter: Event-Handler-Name und Event-Handler-Funktion. Da IE nur das Event-Bubbling unterstützt, werden über attachmentEvent hinzugefügte Event-Handler zur Bubbling-Phase hinzugefügt.

例如:var btn=document.getElementById("myBtn");
btn.attachEvent("onclick",function(){alert("hello world");});
Nach dem Login kopieren

IE Bei Verwendung der Methode attachmentEvent ist der Bereich des Event-Handlers der globale Bereich, also entspricht dieser dem Fenster. (Dies ist beim Schreiben von browserübergreifendem Code sehr wichtig.)

Ähnlich wie addEventListner kann die Methode attachmentEvent() auch verwendet werden, um mehrere Ereignishandler zu einem Element hinzuzufügen.

eg:
var btn=document.getElementById("myBtn");
btn.attachEvent("onclick",function(){alert("clicked");});
btn.attachEvent("onclick",function(){alert("hello world");});
Nach dem Login kopieren

Es ist zu beachten, dass die Handler für diese Ereignisse in umgekehrter Reihenfolge ausgelöst werden , das heißt, zuerst Popup-Hallo Welt und dann Popup-Klick.

Die Verwendung von detach() wird kurz erwähnt.

(5) Browserübergreifender Ereignishandler

Um Ereignisse browserübergreifend zu verarbeiten, können Sie hauptsächlich zwei Methoden verwenden:

①Zum Isolieren verwenden Durchsuchen Sie die js-Bibliothek, die Unterschiede implementiert.

②Schreiben Sie selbst die am besten geeignete Methode zur Ereignisbehandlung. Hier kommt die Fähigkeitserkennung zum Einsatz, also die Identifizierung der Fähigkeiten des Browsers. Um sicherzustellen, dass der Code unter den meisten Browsern konsistent läuft, konzentrieren Sie sich einfach auf die Bubbling-Phase.

Die Codeschritte lauten wie folgt: Die erste zu erstellende Methode ist addHandler (wird zur Behandlung von browserübergreifenden Kompatibilitätsproblemen verwendet, hier wird kein spezifischer Code angegeben). Seine Aufgabe besteht darin, zu bestimmen, ob die DOM0-Ebene verwendet werden soll Methode oder DOM2, je nach Situation, IE-Methode zum Hinzufügen von Ereignissen. addHandler empfängt 3 Parameter: das zu bearbeitende Element, den Ereignisnamen und die Ereignishandlerfunktion. Diese Methode gehört zu einem Objekt namens EventUtil. Dieses Objekt wird hier verwendet, um Unterschiede zwischen Browsern zu verarbeiten.

Die entsprechende Methode zu addHandler ist removeHandler(), die ebenfalls dieselben Parameter akzeptiert. Die Aufgabe dieses Ereignisses besteht darin, den zuvor hinzugefügten Ereignishandler zu entfernen. Unabhängig davon, wie das Ereignis dem Objekt hinzugefügt wird, wird standardmäßig die DOM-Level-0-Methode verwendet, wenn andere Methoden ungültig sind.

使用EventUtil的方法如下:var btn=document.getElementById("myBtn");
var hander=function(){alert("hello")};//事件处理程序
EventUtil.addHandler(btn,"onclick",handler);
//其他代码
EventUtil.removeHandler(btn,"onclick",handler);
addHandler()和removeHandler()没有考虑到所有的浏览器问题,例如IE中作用域的问题,但是使用它们添加和移除事件处理程序还是足够了。
Nach dem Login kopieren

上面是我整理给大家的在js中详细介绍几种类型的事件处理程序的方式,希望今后会对大家有帮助。

相关文章:

重点解答动态加载JS脚本,一语道破

javascript中遍历EL表达式List集合中的值

如何在<script></script>标签中一样可以使用el表达式

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in verschiedene Arten von Event-Handlern in js. 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)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
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)

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

Wie erstelle ich ein Videomatrix-Konto? Welche Arten von Matrixkonten gibt es? Wie erstelle ich ein Videomatrix-Konto? Welche Arten von Matrixkonten gibt es? Mar 21, 2024 pm 04:57 PM

Mit der Beliebtheit von Kurzvideoplattformen ist Video-Matrix-Account-Marketing zu einer aufstrebenden Marketingmethode geworden. Durch die Erstellung und Verwaltung mehrerer Konten auf verschiedenen Plattformen können Unternehmen und Einzelpersonen Ziele wie Markenwerbung, Fanwachstum und Produktverkäufe erreichen. In diesem Artikel wird erläutert, wie Sie Video-Matrix-Konten effektiv nutzen und verschiedene Arten von Video-Matrix-Konten vorgestellt. 1. Wie erstelle ich ein Videomatrix-Konto? Um ein gutes Video-Matrix-Konto zu erstellen, müssen Sie die folgenden Schritte befolgen: Zunächst müssen Sie klären, was das Ziel Ihres Video-Matrix-Kontos ist, sei es für die Markenkommunikation, das Fanwachstum oder den Produktverkauf. Klare Ziele helfen dabei, entsprechende Strategien zu entwickeln. 2. Wählen Sie eine Plattform: Wählen Sie eine geeignete Kurzvideoplattform basierend auf Ihrer Zielgruppe. Zu den aktuellen Mainstream-Kurzvideoplattformen gehören Douyin, Kuaishou, Huoshan Video usw.

So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript Jan 05, 2024 pm 01:37 PM

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert

So implementieren Sie die Änderungsereignisbindung ausgewählter Elemente in jQuery So implementieren Sie die Änderungsereignisbindung ausgewählter Elemente in jQuery Feb 23, 2024 pm 01:12 PM

jQuery ist eine beliebte JavaScript-Bibliothek, die zur Vereinfachung der DOM-Manipulation, Ereignisbehandlung, Animationseffekte usw. verwendet werden kann. Bei der Webentwicklung stoßen wir häufig auf Situationen, in denen wir die Ereignisbindung für ausgewählte Elemente ändern müssen. In diesem Artikel wird erläutert, wie Sie mit jQuery ausgewählte Elementänderungsereignisse binden, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir ein Dropdown-Menü mit Optionen erstellen, die Beschriftungen verwenden:

Was ist die Art des Rückgabewerts der Golang-Funktion? Was ist die Art des Rückgabewerts der Golang-Funktion? Apr 13, 2024 pm 05:42 PM

Go-Funktionen können mehrere Werte unterschiedlichen Typs zurückgeben. Der Rückgabewerttyp wird in der Funktionssignatur angegeben und über die Return-Anweisung zurückgegeben. Beispielsweise kann eine Funktion eine Ganzzahl und einen String zurückgeben: funcgetDetails()(int,string). In der Praxis kann eine Funktion, die die Fläche eines Kreises berechnet, die Fläche und einen optionalen Fehler zurückgeben: funccircleArea(radiusfloat64)(float64,error). Hinweis: Wenn die Funktionssignatur keinen Typ angibt, wird ein Nullwert zurückgegeben. Zur Verbesserung der Lesbarkeit wird empfohlen, eine Return-Anweisung mit einer expliziten Typdeklaration zu verwenden.

Ein tiefer Einblick in Close-Button-Ereignisse in jQuery Ein tiefer Einblick in Close-Button-Ereignisse in jQuery Feb 24, 2024 pm 05:09 PM

Vertiefendes Verständnis des Schließen-Schaltflächenereignisses in jQuery Während des Front-End-Entwicklungsprozesses stoßen wir häufig auf Situationen, in denen wir die Schließschaltflächenfunktion implementieren müssen, z. B. das Schließen von Popup-Fenstern, das Schließen von Eingabeaufforderungsfeldern usw. Wenn Sie jQuery, eine beliebte JavaScript-Bibliothek, verwenden, wird es äußerst einfach und bequem, das Schaltflächenereignis „Schließen“ zu implementieren. Dieser Artikel befasst sich mit der Verwendung von jQuery zum Implementieren von Schließschaltflächenereignissen und stellt spezifische Codebeispiele bereit, um den Lesern zu helfen, diese Technologie besser zu verstehen und zu beherrschen. Zuerst müssen wir verstehen, wie man definiert

So erstellen Sie ereignisbasierte Anwendungen mit PHP So erstellen Sie ereignisbasierte Anwendungen mit PHP May 04, 2024 pm 02:24 PM

Zu den Methoden zum Erstellen ereignisbasierter Anwendungen in PHP gehört die Verwendung der EventSourceAPI zum Erstellen einer Ereignisquelle und die Verwendung des EventSource-Objekts zum Abhören von Ereignissen auf der Clientseite. Senden Sie Ereignisse mithilfe von Server Sent Events (SSE) und warten Sie auf der Clientseite mithilfe eines XMLHttpRequest-Objekts auf Ereignisse. Ein praktisches Beispiel ist die Verwendung von EventSource zur Aktualisierung der Bestandszahlen in Echtzeit auf einer E-Commerce-Website. Dies wird auf der Serverseite durch zufälliges Ändern des Bestands und Senden von Aktualisierungen erreicht, und der Client wartet über EventSource auf Bestandsaktualisierungen und zeigt diese an Echtzeit.

Eine kurze Einführung in die jQuery-Ereignisbindung Eine kurze Einführung in die jQuery-Ereignisbindung Feb 26, 2024 pm 02:42 PM

Einführung in die jQuery-Ereignisbindungsmethode jQuery ist eine sehr beliebte JavaScript-Bibliothek, die Seitenvorgänge und Ereignisverarbeitung vereinfacht. In jQuery ist die Ereignisbindung ein sehr häufiger Vorgang, und entsprechende Aktionen können über Ereignisbindungsmethoden ausgelöst werden. In diesem Artikel werden mehrere häufig verwendete jQuery-Ereignisbindungsmethoden vorgestellt und spezifische Codebeispiele angehängt. 1..on()-Methode Die on()-Methode ist eine der am häufigsten verwendeten Ereignisbindungsmethoden in jQuery. Sie kann für ein oder mehrere Elemente verwendet werden.

See all articles