Einem Element zugewiesene Ereignis-Listener mit jQuery abrufen
In JavaScript ist das Anhängen von Ereignishandlern an Elemente eine gängige Praxis zur Verbesserung der Benutzerinteraktion. jQuery bietet robuste Funktionen zur Ereignisbehandlung und erleichtert die Zuweisung und Verwaltung von Ereignis-Listenern für Elemente. Dies wirft die Frage auf: Können wir mit jQuery eine Liste von Ereignissen abrufen, die an ein bestimmtes Element gebunden sind?
Problem:
Szenario: Wir haben ein Element mit einer ID " elm“ und wir haben diesem Link zwei Ereignishandler angehängt – einen für das Klickereignis und einen anderen für das Mouseover-Ereignis.
<a href='#'>
$(function() { $('#elm').click(_f); $('#elm').mouseover(_m); }); function _f(){alert('clicked');} function _m(){alert('mouse over');}
Gibt es eine Möglichkeit, eine Liste aller mit dem Element verknüpften Ereignisse zu erhalten? mit der ID „elm“?
Antwort:
In neueren Versionen von jQuery kann die Methode $._data verwendet werden, um Informationen über ein Element, einschließlich aller Ereignisse, abzurufen daran gebunden. Es ist erwähnenswert, dass $._data eine Methode nur für den internen Gebrauch ist.
// Bind up a couple of event handlers $("#foo").on({ click: function(){ alert("Hello") }, mouseout: function(){ alert("World") } }); // Lookup events for this particular Element $._data( $("#foo")[0], "events" );
$._data gibt ein Objekt zurück, das die Ereignisse enthält, die an das angegebene Element angehängt sind.
{ click: [ { handler: function(){ alert("Hello") } // The defined click handler } ], mouseout: [ { handler: function(){ alert("World") } // The defined mouseout handler } ] }
In Chrome können Sie mit der rechten Maustaste auf die Handler-Funktion klicken und „Funktionsdefinition anzeigen“ auswählen, um ihren Ursprung in Ihrem Code zu verfolgen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit jQuery eine Liste von Ereignis-Listenern abrufen, die an ein Element gebunden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!