diff options
author | Adrian Lang <lang@cosmocode.de> | 2010-03-02 14:30:37 +0100 |
---|---|---|
committer | Adrian Lang <lang@cosmocode.de> | 2010-03-02 14:31:09 +0100 |
commit | 63de0a583d1ce8c88c5362eecd0fc5ecd8c411a4 (patch) | |
tree | bcd5a74dca76c7cc600ae8d20a865d283ca30d62 /lib | |
parent | 1410ed4b6ef86f5fcd267682eae03c9aece3346f (diff) | |
download | rpg-63de0a583d1ce8c88c5362eecd0fc5ecd8c411a4.tar.gz rpg-63de0a583d1ce8c88c5362eecd0fc5ecd8c411a4.tar.bz2 |
Fix pageX and pageY in IE’s JS events
Diffstat (limited to 'lib')
-rw-r--r-- | lib/scripts/drag.js | 22 | ||||
-rw-r--r-- | lib/scripts/events.js | 4 |
2 files changed, 8 insertions, 18 deletions
diff --git a/lib/scripts/drag.js b/lib/scripts/drag.js index fa249a996..254eab4a6 100644 --- a/lib/scripts/drag.js +++ b/lib/scripts/drag.js @@ -50,8 +50,8 @@ var drag = { this.oX = parseInt(this.obj.style.left); this.oY = parseInt(this.obj.style.top); - this.eX = drag.evX(e); - this.eY = drag.evY(e); + this.eX = e.pageX; + this.eY = e.pageY; var _this = this; this.mousehandlers = [function (e) {return _this.drag(e);}, function (e) {return _this.stop(e);}]; @@ -80,23 +80,9 @@ var drag = { */ drag: function(e) { if(this.obj) { - this.obj.style.top = (this.evY(e)+this.oY-this.eY+'px'); - this.obj.style.left = (this.evX(e)+this.oX-this.eX+'px'); + this.obj.style.top = (e.pageY+this.oY-this.eY+'px'); + this.obj.style.left = (e.pageX+this.oX-this.eX+'px'); } }, - /** - * Returns the X position of the given event. - */ - evX: function(e){ - return (e.pageX) ? e.pageX : e.clientX + document.body.scrollTop; //fixme shouldn't this be scrollLeft? - }, - - /** - * Returns the Y position of the given event. - */ - evY: function(e){ - return (e.pageY) ? e.pageY : e.clientY + document.body.scrollTop; - } - }; diff --git a/lib/scripts/events.js b/lib/scripts/events.js index e7526ced7..2ea619085 100644 --- a/lib/scripts/events.js +++ b/lib/scripts/events.js @@ -55,6 +55,10 @@ function fixEvent(event) { event.stopPropagation = fixEvent.stopPropagation; // fix target event.target = event.srcElement; + // fix coords + event.pageX = (typeof event.pageX !== 'undefined') ? event.pageX : event.clientX + document.body.scrollTop; + event.pageY = (typeof event.pageY !== 'undefined') ? event.pageY : event.clientY + document.body.scrollTop; + return event; }; fixEvent.preventDefault = function() { |