2010-03-04 113 views
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,像document.observe DOM元素?

在我的代碼中,我想知道哪個類使用event.target來分派事件,如果我必須使用document或其他一些DOM元素,我不能。 :(

我在ActionScript 3中已經工作,這就是我學會了班,自定義事件的工作有什麼關於JavaScript的方法

回答

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");