tipos saber obtener funciones existe elemento ejemplo javascript jquery javascript-events event-triggers

javascript - saber - Verifique si el evento existe en el elemento



saber si existe un elemento javascript (9)

Esta pregunta ya tiene una respuesta aquí:

¿Hay alguna manera de verificar si existe un evento en jQuery? Estoy trabajando en un complemento que usa eventos personalizados con espacios de nombres, y me gustaría poder verificar si el evento está vinculado a un elemento o no.


A continuación se detalla cómo verificar si existe algún evento para un elemento

<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>


El siguiente código le proporcionará todos los eventos de clic en el selector dado:

jQuery(selector).data(''events'').click

Puede iterar sobre él usando cada uno o por ej. compruebe la longitud para la validación como:

jQuery(selector).data(''events'').click.length

Pensé que ayudaría a alguien. :)


Escribí un complemento llamado hasEventListener que hace exactamente eso.

Espero que esto ayude.


Este trabajo para mí muestra los objetos y el tipo de evento que ha ocurrido.

var foo = $._data( $(''body'').get(0), ''events'' ); $.each( foo, function(i,o) { console.log(i); // guide of the event console.log(o); // the function definition of the event handler });



Puedes utilizar:

$("#foo").unbind(''click'');

para asegurarse de que todos los eventos de clics estén desvinculados, luego adjunte su evento


Terminé haciendo esto

typeof ($(''#mySelector'').data(''events'').click) == "object"


usar el filtro de eventos jquery

puedes usarlo así

$("a:Event(click)")


$(''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 });

Puede inspeccionar alimentando la referencia del objeto (no el objeto jQuery) a $ .data, y para el segundo argumento alimentar ''events'' y eso devolverá un objeto poblado con todos los eventos como ''click''. Puede recorrer ese objeto y ver qué hace el controlador de eventos.