Est-il un moyen de vérifier si un événement existe en jQuery? Je travaille sur un plugin qui utilise personnalisé des espaces événements, et que vous souhaitez être en mesure de vérifier si l'événement est lié à un élément, ou pas.
Réponses
Trop de publicités?$('body').click(function(){ alert('test' )})
var foo = $.data( $('body').get(0), 'events' ).click
// you can query $.data( object, 'events' ) and get an object back, then see what events are attached to it.
$.each( foo, function(i,o) {
alert(i) // guid of the event
alert(o) // the function definition of the event handler
});
Vous pouvez inspecter par l'alimentation de la référence de l'objet ( pas l'objet jQuery)$.de données, et pour la deuxième argument nourrir des "événements" et qui retourne un objet rempli avec tous les événements tels que le "clic". Vous pouvez faire une boucle par le biais de l'objet et de voir ce que le gestionnaire d'événement.
Voici comment vérifier si aucun événement n'existe pour un élément
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script>
$(function() {
$("#textDiv").click(function() {
//Event Handling
});
var events = $._data(document.getElementById('textDiv'), "events");
var hasEvents = (events != null);
});
</script>
</head>
<body>
<div id="textDiv">Text</div>
</body>
</html>
J'ai écrit un plugin appelé hasEventListener qui fait exactement cela.
Espérons que cette aide.