Skip to content

Instantly share code, notes, and snippets.

@xeoncross
Created November 4, 2011 18:54
Show Gist options
  • Save xeoncross/1340159 to your computer and use it in GitHub Desktop.
Save xeoncross/1340159 to your computer and use it in GitHub Desktop.
Fix a JavaScript event
function fixEvent(event)
{
if (!event) var event = window.event;
// Fix target property, if necessary (IE 6/7/8 & Safari2)
if ( ! event.target)
{
event.target = originalEvent.srcElement || document;
}
// Target should not be a text node (Safari)
if (event.target.nodeType === 3)
{
event.target = event.target.parentNode;
}
event.posx = 0;
event.posy = 0;
if (event.pageX || event.pageY)
{
event.posx = event.pageX;
event.posy = event.pageY;
}
else if (event.clientX || event.clientY)
{
event.posx = event.clientX + document.body.scrollLeft
+ document.documentElement.scrollLeft;
event.posy = event.clientY + document.body.scrollTop
+ document.documentElement.scrollTop;
}
return event;
}
// Fix event
$('a').click(function(e) {
e = fixEvent(e);
console.log(e);
});
// Based on
// http://www.quirksmode.org/js/events_properties.html
// https://github.com/jquery/jquery/blob/master/src/event.js#L534
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment