Хабр Курсы для всех
РЕКЛАМА
 Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать! 
function getElementXY(node) {
	// если у html/body имеется паддинг или нода находится внутри ноды со скроллом (но не html),
	// то нужно будет дополнительно погемороиться
	var x = 0, y = 0;
	while(node.offsetParent) {
		x += node.offsetLeft;
		y += node.offsetTop;
		node = node.offsetParent;
	}
	return [x, y];
}
function onClick(evt) {
	// координаты мыши на странице
	var mouseXY = [evt.clientX, evt.clientY]; 
	// координаты ноды на странице
	var nodeXY = getElementXY(evt.currentTarget || evt.srcElement); 
	// координаты мыши внутри ноды - просто разность
	var XY = [ mouseXY[0] - nodeXY[0], mouseXY[1] - nodeXY[1] ]; 
	// проверка (я смотрел в ие6, фф2, опера 9.5)
	// alert(mouseXY[0] +", "+ mouseXY[1] +"\n"+ nodeXY[0] +", "+ nodeXY[1]);
}
Javascript event.currentTarget — конфузная ситуация