È possibile utilizzare jQuery._data
per verificare gli eventi. Il primo argomento dovrebbe essere un riferimento all'elemento HTML, non all'oggetto jQuery.
var ev = $._data(element, 'events');
if(ev && ev.click) alert('click bound');
esempio.
$(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>
Si noti inoltre che questo metodo per gli eventi di controllo funziona solo quando l'evento è legato tramite jQuery. Se l'evento è legato tramite element.attachEventListener
, element.onclick
, <a onclick="doStuff()">
o in qualsiasi altro modo non jQuery, questo non funzionerà. Se ti stai adattando a questa barca, controlla this answer.
Come è stato assegnato il gestore di clic? – AmShaegar
sei sicuro collegamento viene selezionato correttamente – NimChimpsky
Handlers assegnati con link.click (... qualche funzione ...) diverse volte, perché non posso controllare se esiste già. E così i gestori hanno eseguito più volte – kostepanych