Lo que quiero tener es un objeto personalizado que proporcione algunos eventos. Por ejemplo:Implementación de eventos en mi propio objeto
var CustomObjectTextChangedEventName = 'textChanged';
var CustomObject = function() {
var _this = this;
var _text = "";
_this.OnTextChanged = document.createEvent("Event");
_this.OnTextChanged.initEvent(CustomObjectTextChangedEventName, true, false);
_this.ChangeText = function (newText) {
_text = newText;
fireTextChanged();
};
function fireTextChanged() {
_this.dispatchEvent(_this.OnTextChanged);
}
}
El código para utilizar el evento se vería así:
myCustomObject = new CustomObject();
myCustomObject.addEventListener(CustomObjectTextChangedEventName, handleTextChanged, false);
Como se puede ver ... la forma predeterminada de la utilización de eventos en JS. Pero no puedo hacerlo worling ...
Actualmente mi problema es que mi objeto no implementa "addEventListener" y "dispatchEvent". Pero estas funciones se implementan normalmente desde "elemento" ...
¿Puedo hacer que estén disponibles de alguna manera o tengo que implementarlas por mi cuenta? ¿Cómo debo implementarlos? ¿Debo implementar mi propio manejo de eventos? (tener una lista interna de controladores, una función de "agregar" y "quitar", manejar y disparar cada controlador cuando quiero disparar el evento)
¡Saludos!
Me Don; no sé si esto ayuda, pero Backbone.js tiene eventos incorporados. Todos los modelos creados con este pueden desencadenar eventos personalizados usando la sintaxis 'object.trigger (event_name)' – Deeptechtons
. También es fácil con jQuery ... por eso pensé que no podía ser tan difícil: P $ (_ this) .trigger (CustomObjectTextChangedEventName , _text); $ (myCustomObject) .bind (CustomObjectTextChangedEventName, handleTextChanged); –