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>