作为事件观察者的类

时间:2010-03-04 19:40:33

标签: javascript oop dom prototypejs custom-events

我想做这样的事......

var Color = Class.create({
    initialize: function() {
        this._color = "white";
        this.observe("evt: colorChanged", this.colorChanged.bind(this));
    },
    changeColor: function(color) {
        this._color = color;
        this.fire("evt: colorChanged");
    },
    colorChanged: function(event) {
        alert("You change my color!");
    }
});
var a = new Color().changeColor("blue");

为什么永远不会调度colorChange自定义事件,我需要使用this之类的DOM元素而不是document.observe

在我的代码中,我想知道哪个类使用event.target调度事件,如果必须使用document或其他一些DOM元素,我就不能。 :(

我一直在使用Actionscript 3,这是我学习在类中使用自定义事件的方法。 Javascript怎么样?

1 个答案:

答案 0 :(得分:0)

这应该有效:

var Color = Class.create({
    initialize: function() {
        this._color = "white";
        Event.observe(document, "evt: colorChanged", this.colorChanged.bind(this));
    },
    changeColor: function(color) {
        this._color = color;
        Event.fire(document, "evt: colorChanged", this, false);
    },
    colorChanged: function(event) {
        alert("You change my color!");
    }
});
var a = new Color().changeColor("blue");