Changeset 6237
- Timestamp:
- 02/26/07 05:56:20 (2 years ago)
- Files:
-
- spinoffs/prototype/branches/event/src/event.js (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
spinoffs/prototype/branches/event/src/event.js
r6205 r6237 34 34 return event.which == 1 || event.button == 1; 35 35 }, 36 37 pointer: function(event) { 38 var x = event.pageX || (event.clientX + 39 (document.documentElement.scrollLeft || document.body.scrollLeft)); 40 var y = event.pageY || (event.clientY + 41 (document.documentElement.scrollTop || document.body.scrollTop)); 42 return { x: x, y: y }; 43 }, 36 44 37 45 pointerX: function(event) { 38 return event.pageX || (event.clientX + 39 (document.documentElement.scrollLeft || document.body.scrollLeft)); 46 return Event.pointer(event).x; 40 47 }, 41 48 42 49 pointerY: function(event) { 43 return event.pageY || (event.clientY + 44 (document.documentElement.scrollTop || document.body.scrollTop)); 50 return Event.pointer(event).y; 45 51 }, 46 52 … … 61 67 }); 62 68 63 Object.extend(Event, function() 64 { 65 var B = Prototype.Browser; 66 67 Observer = Class.create(); 69 Object.extend(Event, function() { 70 var B = Prototype.Browser, Observer = Class.create(); 68 71 Observer.guid = 1; 69 72 … … 108 111 }); 109 112 110 if (document.addEventListener) 111 { 113 if (document.addEventListener) { 112 114 Object.extend(Observer.prototype, { 113 115 _add: function() { … … 119 121 } 120 122 }); 121 } else if (B.IE) 122 { 123 } else if (B.IE) { 123 124 Object.extend(Observer.prototype, { 124 125 _add: function() { … … 141 142 unloadCache: function() { 142 143 for(var i=0, length = this.globalCache.length; i < length; i++) 143 this.globalCache[i].remove() 144 this.globalCache[i].remove(); 144 145 }, 145 146 /* adds standard DOM event model properties to IE's events */ 146 147 extendEvent: function(event) { 147 event || (event = window.event); 148 return Object.extend(Object.extend(event, { 149 target: event.srcElement, 150 which: event.button, 151 pageX: Event.pointerX(event), 152 pageY: Event.pointerY(event), 153 relatedTarget: Event.relatedTarget(event) 154 }), 155 this.eventMethods 156 ); 148 event = event || window.event; 149 Object.extend(event, { 150 target: event.srcElement, 151 which: event.button, 152 pageX: Event.pointerX(event), 153 pageY: Event.pointerY(event), 154 relatedTarget: Event.relatedTarget(event) 155 }); 156 return Object.extend(event, this.eventMethods); 157 157 }, 158 158 eventMethods: { 159 stopPropagation: function() { this.cancelBubble = true },160 preventDefault: function() { this.returnValue = false },161 inspect: function() { return '[object Event]' }159 stopPropagation: function() { this.cancelBubble = true; }, 160 preventDefault: function() { this.returnValue = false; }, 161 inspect: function() { return '[object Event]'; } 162 162 } 163 163 }); … … 169 169 // applies the calling method to an array of elements 170 170 function applyToList(args) { 171 if (args[0].constructor == Array) { 172 var method = args.callee; 173 args = $A(args); 174 args.shift().each(function(el){ 175 method.apply(null, [el].concat(args)); 176 }); 177 return true; // the calling method can end 178 } 179 return false; 180 } 171 if (args[0].constructor != Array) return false; 172 var method = args.callee; 173 args = $A(args); 174 args.shift().each(function(el){ 175 method.apply(null, [el].concat(args)); 176 }); 177 return true; // the calling method can end 178 }, 181 179 182 180 return { 183 181 observe: function(element, type, observer, useCapture) { 184 182 if (applyToList(arguments)) return; 185 186 183 new Observer(element, type, observer, useCapture).add(); 187 184 }, 188 185 stopObserving: function(element, type, observer, useCapture) { 189 186 if (applyToList(arguments)) return; 190 191 187 new Observer(element, type, observer, useCapture).remove(); 192 188 } 193 } 189 }; 194 190 }());