1

私はこのようなことをしたい...

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ですか?

私のコードでは、どのクラスが使用してイベントをディスパッチするかを知りたいのですが、使用する必要があるかどうか、または他のDOM要素event.targetを使用する必要があるかどうかはわかりません。document:(

私は Actionscript 3 で作業してきましたが、これは、クラスでカスタム イベントを操作するために学んだ方法論です。Javascriptはどうですか?

4

1 に答える 1

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");
于 2010-03-05T17:21:25.577 に答える