Suchen Sie nach einer vollständigen Liste der jQuery-Ereignistypen


74

Wo kann ich eine komplette Liste aller jQuery unterstützten Ereignisse (wie finden click, mouseupusw.) mit einigen Erklärungen , wenn sie ausgelöst werden? Ich suche diejenigen, die gebunden werden können:

$('#foo').bind('click', handler);

Zum Beispiel habe ich gerade zufällig herausgefunden, dass es ein pasteEreignis gibt, aber ich kann nirgendwo in ihren Dokumenten Verweise darauf finden. Was gibt es noch?


1
Die bind () -Methode war in Version 3.0 veraltet. Verwenden Sie stattdessen die on () -Methode. Es folgt ein Link zur Methode jquery on (): api.jquery.com/on
Bahman.A

Antworten:


48

Eine nicht vollständige Liste finden Sie unter http://api.jquery.com/category/events/ . Es werden weitere DOM-Ereignisse durch .bind()und unterstützt .live(). Diese Funktionen können jedem Standard-DOM-Ereignis einen Handler zuweisen. Die meisten dieser Funktionen sind zusammen mit den Kompatibilitätstabellen unter http://www.quirksmode.org/dom/events/ aufgeführt.

Die .bind () -Methode ist das primäre Mittel zum Anhängen von Verhalten an ein Dokument. Alle JavaScript-Ereignistypen wie Fokus, Mouseover und Größenänderung sind für eventType zulässig.


Ab jQuery 1.7 sollten Sie .on()anstelle von .live()und verwenden .bind().


Alle Bindungsereignisse sind das, wonach ich suche (keine Verknüpfungsfunktionen). Vielleicht sollte ich meine Frage umformulieren.
Serg

@ serg555: Ich habe einen Link zu quirksmode.org hinzugefügt. Die meisten (wenn nicht alle) Ereignisse werden dort zusammen mit den Kompatibilitätstabellen für jeden Browser aufgelistet. Beachten Sie, dass Opera das pasteEreignis nicht unterstützt .
Andy E

Bei näherer Betrachtung scheint es ziemlich veraltet zu sein. Zum Beispiel heißt es, dass mouseleavees nur im IE funktioniert, aber es ist nicht wahr.
Serg

@ serg555: wird tatsächlich mouseleavevon jQuery implementiert, es ist kein Standardereignis. Firefox und Chrome unterstützen es nicht, ich habe Safari und Opera nicht überprüft. jQuery stellt dieses Ereignis in diesen Browsern bereit. Sie haben jedoch Recht, einige der quirksmode.org-Inhalte sind veraltet.
Andy E

3
Diese Antwort ist nicht wirklich aktuell. touchEreignisse werden beispielsweise nicht aufgelistet.
Florian Margaine




0

Ich weiß, dass diese Frage ziemlich alt ist. Aber um eine aktualisierte und vollständige Antwort auf diese Frage zu geben.

Die Verknüpfungsmethoden haben immer den gleichen Namen wie die Ereignisnamen, die in einer der Methoden on () / bind () / live () verwendet werden.

Wenn Sie also eine Verknüpfungsereignisfunktion verwenden möchten, aber mit on () / bind () / live (), können Sie einfach den Methodennamen übernehmen , die Klammern weglassen und ihn in Anführungszeichen wie folgt setzen: "eventname" / 'eventname' . Sie sollten sich gleich verhalten.

Also zum Beispiel: .dblclick () -> 'dblclick' =>

$('a').on('dblclick', function() {  
    console.log("I got double clicked");
});

http://api.jquery.com/category/events/ ist eine vollständige Liste der Ereignismethoden. (Ja, ich weiß, dass ich nicht der einzige bin, der auf diese Site verweist, aber zusammen mit meiner Erklärung handelt es sich tatsächlich um eine vollständige Liste der Ereignisse für 'on' / 'live' / 'bind')

Wenn Sie die Möglichkeit haben, on () zu verwenden, sollten Sie dies tun, da on () dasselbe tut und alle Aufrufe von 'bind' und 'live' tatsächlich die Funktion 'on' aufrufen. Hier ist ein weiterer Beweis dafür: Was ist der Unterschied zwischen "on" und "live" oder "bind"?

Einige Leute fragten auch nach den Touch-Ereignissen (mobil). Ich empfehle generell, sich an die on () -Ereignismethode zu gewöhnen, da dies laut der mobilen jQuery-Dokumentation die einzige Möglichkeit ist, Berührungsereignisse für HTML-Elemente zu registrieren, was den zukünftigen API-Plänen von jQuery zum Entfernen von bind () / live (entspricht) ) und alle Verknüpfungsereignismethoden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.