2011-09-02 23 views
5

Deseo utilizar eventos personalizados en mi sitio web de J-Query. Ahora no estoy seguro de cuál es la mejor manera de activar un evento personalizado en todos los elementos asociados a este evento.Cómo desencadenar eventos en todos los elementos

Un ejemplo podría ser más clarificadora aquí: Básicamente que podría utilizar

$('#id').trigger('customevent'); 

no quiero que el elemento desencadenante de tener que conocer todos los elementos adjuntos al evento. Entonces podría usar

$('*').trigger('customevent'); 

que con suerte haría lo que quiero. Pero me temo que de esta manera tiene algunos problemas de rendimiento.

Otra forma en que estaba pensando es en usar una clase. Todos los elementos adjuntos al evento podrían agregar esta clase a ellos mismos. Entonces puedo usar esta clase como selector. Sin embargo, todo esto huele a solución.

Realmente espero que alguien sepa una forma habitual de resolver mi problema.

+0

acaba de encontrar la respuesta por mí mismo: $ .event.trigger ('customevent'); Pero no puedo responder mi pregunta. Dudosa limitación ... –

+0

Creo que tienes que esperar algunas horas ... pero luego puedes agregar tu respuesta. * Editar: * En realidad es un duplicado. –

+0

posible duplicación de [jQuery event triggering en todos los oyentes] (http://stackoverflow.com/questions/6860146/jquery-event-triggering-on-all-listeners) –

Respuesta

7

acaba de encontrar la respuesta por mí mismo (que es ahora obsoleto , véase el comentario a continuación):

$.event.trigger('customevent'); 
+1

Esto no está documentado y está en desuso: https://github.com/jquery/jquery/blob/935eb19d87063ec30b717b3d45368d3c73cb591d/jquery-migrate.js#L481 –

+1

No estoy seguro de si es un motivo de devolución negativa apropiado porque una función se depreció tres años después de que fuera perfectamente válido –

+1

Gracias por editar su respuesta. Antes de eso, era incorrecto (independientemente de si era correcto en ese momento o no), por lo tanto, el voto a la baja. He eliminado el voto negativo. –

Cuestiones relacionadas