Heim > Web-Frontend > js-Tutorial > Wie kann ich mit jQuery eine Liste von Ereignis-Listenern abrufen, die an ein Element gebunden sind?

Wie kann ich mit jQuery eine Liste von Ereignis-Listenern abrufen, die an ein Element gebunden sind?

Linda Hamilton
Freigeben: 2024-11-08 02:52:02
Original
439 Leute haben es durchsucht

How can I retrieve a list of event listeners bound to an element using jQuery?

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='#'>
Nach dem Login kopieren
$(function()
{
  $('#elm').click(_f);
  $('#elm').mouseover(_m);
});

function _f(){alert('clicked');}
function _m(){alert('mouse over');}
Nach dem Login kopieren

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" );
Nach dem Login kopieren

$._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
        }
    ] 
}
Nach dem Login kopieren

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!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage