
21.06.2008, 14:46
|
|
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
Провел на форуме: 3244717
Репутация:
1980
|
|
Как вариант для attachEvent и addEventListener:
Код:
<a id=aid href=#>Click me!</a>
<script>
Array.prototype.append = function(obj, nodup) {
if(!(nodup && this.contains(obj))) {
this[this.length] = obj;
}
}
EventRouter = function(el, eventType) {
this.lsnrs = new Array();
this.el = el;
el.eventRouter = this;
el[eventType] = EventRouter.callback;
}
EventRouter.prototype.addListener = function(lsnr) {
this.lsnrs.append(lsnr);
}
EventRouter.prototype.notify = function(e) {
var lsnrs = this.lsnrs;
for(var i=0; i < lsnrs.length; i++) {
var lsnr=lsnrs[i];
lsnr.call(this, e);
}
}
EventRouter.callback = function(event) {
var e = event || window.event;
var router = this.eventRouter;
router.notify(e);
}
var aid = document.getElementById("aid");
var ev = new EventRouter(aid, "onclick");
ev.addListener(function(){alert("Click!");});
</script>
|
|
|