Maison >interface Web >js tutoriel >Comment puis-je récupérer une liste d'écouteurs d'événements liés à un élément à l'aide de jQuery ?

Comment puis-je récupérer une liste d'écouteurs d'événements liés à un élément à l'aide de jQuery ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-08 02:52:02419parcourir

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

Récupération des écouteurs d'événements attribués à un élément à l'aide de jQuery

En JavaScript, attacher des gestionnaires d'événements aux éléments est une pratique courante pour améliorer l'interaction utilisateur. jQuery fournit des capacités robustes de gestion des événements, facilitant l'attribution et la gestion des écouteurs d'événements sur les éléments. Cela soulève une question : peut-on récupérer une liste d'événements liés à un élément spécifique en utilisant jQuery ?

Problème :

Scénario : Nous avons un élément avec un ID " elm" et nous avons attaché deux gestionnaires d'événements à ce lien : un pour l'événement de clic et un autre pour le survol de la souris. événement.

<a href='#'>
$(function()
{
  $('#elm').click(_f);
  $('#elm').mouseover(_m);
});

function _f(){alert('clicked');}
function _m(){alert('mouse over');}

Existe-t-il un moyen d'obtenir une liste de tous les événements associés à l'élément avec l'ID « orme » ?

Réponse :

Dans les versions récentes de jQuery, la méthode $._data peut être utilisée pour récupérer des informations sur un élément, y compris les événements qui lui sont liés. Il convient de noter que $._data est une méthode à usage interne uniquement.

// 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 renverra un objet contenant les événements attachés à l'élément spécifié.

{ 
    click: [
        {
            handler: function(){ alert("Hello") }  // The defined click handler
        } 
    ],
    mouseout: [
        {
            handler: function(){ alert("World") }  // The defined mouseout handler
        }
    ] 
}

Dans Chrome, vous pouvez cliquer avec le bouton droit sur la fonction de gestionnaire et sélectionner "afficher la définition de la fonction" pour retracer son origine dans votre code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn