Refactored macro implementation

Now setting event handlers to the macro object, the browser invokes the
handleEvent method. Gets rid of a closure, which is good
print-window-tiddler
Jeremy Ruston 2012-03-07 17:42:10 +00:00
rodzic e17772c830
commit b64e44d1af
1 zmienionych plików z 6 dodań i 5 usunięć

Wyświetl plik

@ -210,12 +210,9 @@ MacroNode.prototype.renderInDom = function(domNode,insertBefore) {
// Add some debugging information to it
macroContainer.setAttribute("data-tw-macro",this.macroName);
// Add event handlers to the node
var self = this,
dispatchMacroEvent = function(event) {
self.macro.events[event.type].call(self,event);
};
for(var e in this.macro.events) {
macroContainer.addEventListener(e,dispatchMacroEvent,false);
// Register this macro node to handle the event via the handleEvent() method
macroContainer.addEventListener(e,this,false);
}
// Render the content of the macro
for(var t=0; t<this.content.length; t++) {
@ -223,6 +220,10 @@ MacroNode.prototype.renderInDom = function(domNode,insertBefore) {
}
};
MacroNode.prototype.handleEvent = function(event) {
return this.macro.events[event.type].call(this,event);
};
MacroNode.prototype.refresh = function(changes) {
var t,
self = this;