Mercurial > js4py
diff core-javascript/core-javascript-work/counters.js @ 138:20d76c716c9d core-javascript
core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
| author | Jonathan Fine <jfine@pytex.org> |
|---|---|
| date | Mon, 31 Oct 2011 19:58:29 +0000 |
| parents | 1b286814b3d0 |
| children |
line wrap: on
line diff
--- a/core-javascript/core-javascript-work/counters.js Mon Oct 31 15:16:58 2011 +0000 +++ b/core-javascript/core-javascript-work/counters.js Mon Oct 31 19:58:29 2011 +0000 @@ -1,79 +1,79 @@ -(function() -{ - // Define a Counter class. - var counter = {}; // Prototype object for Counter. - - counter.__init__ = function(name){ - - this.name = name; - this.count = 0; - }; - - counter.onclick = function(event){ - - this.count ++; - }; - - counter.html = function(){ - - return this.name + ' ' + this.count; - }; - - Counter = SimpleClass(counter); - - - // Make explicit use of global variables. - var global = (function(){return this;})(); - - - // Interaction. - var onclick_factory = function(models){ - - var onclick = function(event){ - - event = event || global.event; // For IE event handling. - var target = event.target || event.srcElement; - var id = target.id; - if (id) { - var id_num = +id.slice(1); - var model = models[id_num]; - model.onclick(); - var html = model.html(); - if (html){ - global.document.getElementById(id).innerHTML = html; - } - } - }; - return onclick; - }; - - - // Set up the web page. - global.onload = function(){ - - var models = [ - Counter('apple'), - Counter('banana'), - Counter('cherry'), - Counter('date') - ]; - - var element = document.getElementById('example'); - - element.innerHTML = ( - '<span id="a0">apple 0</span>' - + '<span id="a1">banana 0</span>' - + '<span id="a2">cherry 0</span>' - + '<span id="a3">date 0</span>' - ); - - element.onclick = onclick_factory(models); - element = undefined; // Avoid IE memory leak. - }; - -})(); - - - - - +(function() +{ + // Define a Counter class. + var counter = {}; // Prototype object for Counter. + + counter.__init__ = function(name){ + + this.name = name; + this.count = 0; + }; + + counter.onclick = function(event){ + + this.count ++; + }; + + counter.html = function(){ + + return this.name + ' ' + this.count; + }; + + Counter = SimpleClass(counter); + + + // Make explicit use of global variables. + var global = (function(){return this;})(); + + + // Interaction. + var onclick_factory = function(models){ + + var onclick = function(event){ + + event = event || global.event; // For IE event handling. + var target = event.target || event.srcElement; + var id = target.id; + if (id) { + var id_num = +id.slice(1); + var model = models[id_num]; + model.onclick(); + var html = model.html(); + if (html){ + global.document.getElementById(id).innerHTML = html; + } + } + }; + return onclick; + }; + + + // Set up the web page. + global.onload = function(){ + + var models = [ + Counter('apple'), + Counter('banana'), + Counter('cherry'), + Counter('date') + ]; + + var element = document.getElementById('example'); + + element.innerHTML = ( + '<span id="a0">apple 0</span>' + + '<span id="a1">banana 0</span>' + + '<span id="a2">cherry 0</span>' + + '<span id="a3">date 0</span>' + ); + + element.onclick = onclick_factory(models); + element = undefined; // Avoid IE memory leak. + }; + +})(); + + + + +
