From 63de0a583d1ce8c88c5362eecd0fc5ecd8c411a4 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 2 Mar 2010 14:30:37 +0100 Subject: =?UTF-8?q?Fix=20pageX=20and=20pageY=20in=20IE=E2=80=99s=20JS=20ev?= =?UTF-8?q?ents?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/scripts/events.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/scripts/events.js') 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() { -- cgit v1.2.3 From cd12dcad1a482ea805f8dcc58b364e9c6cddc667 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 2 Feb 2010 16:20:17 +0100 Subject: JavaScript syntax fixes --- lib/scripts/events.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/scripts/events.js') diff --git a/lib/scripts/events.js b/lib/scripts/events.js index 2ea619085..df46cc1cf 100644 --- a/lib/scripts/events.js +++ b/lib/scripts/events.js @@ -107,8 +107,8 @@ window.fireoninit = function() { } // for Internet Explorer (using conditional comments) - /*@cc_on @*/ - /*@if (@_win32) + /*@cc_on + @if (@_win32) document.write("<\/script>"); var script = document.getElementById("__ie_init"); script.onreadystatechange = function() { @@ -116,7 +116,7 @@ window.fireoninit = function() { window.fireoninit(); // call the onload handler } }; - /*@end @*/ + @end @*/ // for Safari if (/WebKit/i.test(navigator.userAgent)) { // sniff @@ -176,5 +176,5 @@ function bind (fnc) { var args = Array.prototype.slice.call(arguments, 1); return function() { return fnc.apply(this, args); - } + }; } -- cgit v1.2.3 From 16c2466cff13dc43e2f66c5cb1071a2457d4dee3 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Fri, 30 Jul 2010 14:37:00 +0200 Subject: Fix event.pageX and pageY correctly --- lib/scripts/events.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lib/scripts/events.js') diff --git a/lib/scripts/events.js b/lib/scripts/events.js index df46cc1cf..498ec21ff 100644 --- a/lib/scripts/events.js +++ b/lib/scripts/events.js @@ -56,8 +56,9 @@ function fixEvent(event) { // 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; + var base = (document.documentElement.scrollTop?document.documentElement:document.body); + event.pageX = (typeof event.pageX !== 'undefined') ? event.pageX : event.clientX + base.scrollLeft; + event.pageY = (typeof event.pageY !== 'undefined') ? event.pageY : event.clientY + base.scrollTop; return event; }; -- cgit v1.2.3 From ca0095d06dade6118afd8205b99001892b7f1296 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Fri, 30 Jul 2010 12:58:07 +0200 Subject: Fix currentTarget in fixevent --- lib/scripts/events.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/scripts/events.js') diff --git a/lib/scripts/events.js b/lib/scripts/events.js index 498ec21ff..a1fcac718 100644 --- a/lib/scripts/events.js +++ b/lib/scripts/events.js @@ -35,26 +35,26 @@ function removeEvent(element, type, handler) { function handleEvent(event) { var returnValue = true; // grab the event object (IE uses a global event object) - event = event || fixEvent(window.event); + event = event || fixEvent(window.event, this); // get a reference to the hash table of event handlers var handlers = this.events[event.type]; // execute each event handler for (var i in handlers) { if (!handlers.hasOwnProperty(i)) continue; - this.$$handleEvent = handlers[i]; - if (this.$$handleEvent(event) === false) { + if (handlers[i].call(this, event) === false) { returnValue = false; } } return returnValue; }; -function fixEvent(event) { +function fixEvent(event, _this) { // add W3C standard event methods event.preventDefault = fixEvent.preventDefault; event.stopPropagation = fixEvent.stopPropagation; // fix target event.target = event.srcElement; + event.currentTarget = _this; // fix coords var base = (document.documentElement.scrollTop?document.documentElement:document.body); event.pageX = (typeof event.pageX !== 'undefined') ? event.pageX : event.clientX + base.scrollLeft; -- cgit v1.2.3