<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>クリックした回数で、アクション?</title>
<p id="a">5回押すと</p>
<p id="b">1回だけでも</p>
<script type="text/javascript">
var clicker = {};
clicker.countup = (function () {
return function (e) {
var p = this.get(e);
if (p) {
p.count_buffer++;
if (p.count_buffer == p.counter) {
p.func.call();
p.count_buffer = 0;
}
}
};
})();
clicker.add = (function () {
return function (eid, count, func) {
var e = document.getElementById(eid);
return this.put(e, count, func);
};
})();
clicker.get = (function () {
return function(e) {
return this.hasOwnProperty (e.id) ? this[e.id]: null;
};
})();
clicker.put = (function () {
return function (e, count, func) {
return this[e.id] = {element:e, counter:count, func:func, count_buffer:0 };
};
})();
clicker.Listener = (function () {
return function (evt) {
var e = evt. target ;
return e.id && this.get (e) && this.countup(e);
};
})();
clicker.Finalizer = (function () {
return function (e) {
document. removeEventListener (
'click', clicker.Listener, false);
removeEventListener (
'unload', clicker.Finalizer, false);
};
})();
document.addEventListener(
'click', clicker.Listener, false)
addEventListener (
'unload', clicker.Finalizer, false);
clicker.add ('a', 5, function(){alert("5かいおした!");});
clicker.add ('b', 1, hoge);
function hoge() {
alert("1かいおした!");
}
</script>