¿Los eventos personalizados de jQuery funcionan en el ámbito global, pero no entre objetos?

Por favor, vea la demostración aquí: http://jsfiddle.net/mA6qm/1/ (expandir consola)

¿Por qué no se envían o reciben eventos entre dos objetos, pero el mismo código funciona bien cuando se coloca en el ámbito global?

preguntado el 12 de junio de 12 a las 18:06

1 Respuestas

El problema es que el objeto al que está vinculando el evento no es el mismo objeto en el que lo está activando. En el setTimeout llamar de vuelta, this no se referirá a calling_object a pesar de que definiste finished como un método en ese objeto. En su lugar, se referirá a la ventana. De manera similar, cuando vinculó el evento, el evento estaba vinculado en listening_object. Debe asegurarse de que está utilizando el mismo objeto para ambos.

Respondido el 12 de junio de 12 a las 18:06

¿Importa qué es 'esto' en la devolución de llamada setTimeout? Solo lo estoy usando para obtener acceso al .trigger de jQuery. Podría usar fácilmente $(document).trigger('test2') - Thomas

Entonces no entiendo de qué se trata tu pregunta. El problema que tienes es específicamente porque vinculó el evento en un objeto pero lo activó en otro diferente. - Dan

Vea este tutorial sobre eventos personalizados de jQuery: corymathews.com/jquery-custom-events - Dan

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.