01.
02.
03.
04.function addEvent(element, type, handler) {
05.
06. if (!handler.$$guid) handler.$$guid = addEvent.guid++;
07.
08. if (!element.events) element.events = {};
09.
10. var handlers = element.events[type];
11. if (!handlers) {
12. handlers = element.events[type] = {};
13.
14. if (element["on" + type]) {
15. handlers[0] = element["on" + type];
16. }
17. }
18.
19. handlers[handler.$$guid] = handler;
20.
21. element["on" + type] = handleEvent;
22.};
23.
24.addEvent.guid = 1;
25.function removeEvent(element, type, handler) {
26.
27. if (element.events && element.events[type]) {
28. delete element.events[type][handler.$$guid];
29. }
30.};
31.function handleEvent(event) {
32. var returnValue = true;
33.
34. event = event || fixEvent(window.event);
35.
36. var handlers = this.events[event.type];
37.
38. for (var i in handlers) {
39. this.$$handleEvent = handlers[i];
40. if (this.$$handleEvent(event) === false) {
41. returnValue = false;
42. }
43. }
44. return returnValue;
45.};
46.
47.function fixEvent(event) {
48.
49. event.preventDefault = fixEvent.preventDefault;
50. event.stopPropagation = fixEvent.stopPropagation;
51. return event;
52.};
53.fixEvent.preventDefault = function() {
54. this.returnValue = false;
55.};
56.fixEvent.stopPropagation = function() {
57. this.cancelBubble = true;
58.};