我正在寻找关于事件对象的事件规范化的良好资源。我试图自己做,但我一直觉得我会想念一些东西。
这是我到目前为止所说的,如果我错过了什么,请告诉我。
var eFix = function(e) {
e = e || window.event;
e.target = e.target || e.srcElement;
e.offsetX = e.offsetX || e.layerX;
e.offsetY = e.offsetY || e.layerY;
e.relatedTarget = e.relatedTarget ||
e.type == 'mouseover' ? e.fromElement : e.toElement;
e.target = e.target || e.srcElement;
if (target.nodeType === 3) target = target.parentNode; //Safari bug
return e;
};
有没有人看过完整的规范化功能?我错过了什么吗? (不用说我们要的是W3C型号而不是IE)
答案 0 :(得分:2)
您的代码还有另一个问题:
e.layerX
仅适用于定位的元素,因此至少需要为要运行的元素添加“position:relative”。其次e.offsetX
只能在 IE8及更高版本中正常工作,所以你应该避免使用它(尽管我现在正在使用它们,但这只需要在特定的浏览器中使用)