Comment vérifier si l'élément a un gestionnaire de clics?

Duplication possible:
Teste si le gestionnaire d'événements est lié à un élément dans jQuery

Essayé de faire ce qui suit (le lien est jQuery objet de la balise 'a'):

link.data("events") //undefined even if link has event handlers jQuery.data(link, 'events') //undefined always also jQuery._data(link, 'events') //undefined always also 

En utilisant jquery-1.8.3

Alors, comment vérifier si l'élément a un gestionnaire de clics?

Vous pouvez utiliser jQuery._data pour vérifier les événements. Le premier argument devrait être une référence à l'élément HTML, et non à l'objet jQuery.

 var ev = $._data(element, 'events'); if(ev && ev.click) alert('click bound'); 

Exemple ci-dessous.

 $(function(){ $('#test').click(function(){ // NOTE: this below is refering to the HTML element, NOT the jQuery element var ev = $._data(this, 'events'); if(ev && ev.click) alert('click bound to this button'); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <button id="test">Click me to check for click handlers</button>