wog*_*and 16 javascript safari firefox google-chrome polymer-1.0
我正在使用Polymer 1.0,当点击Chrome中的按钮时,MouseEvent就会生成一个.此MouseEvent对象具有一个path属性,该属性是单击按钮的父元素的有序数组.但是,在Firefox和Safari中,click会生成一个没有path属性的a .是否有click对象的等效属性给我相同的信息?
Jak*_*żek 37
它不可用,但是如果你真的想拥有这个属性,那么你可以扩展Event对象的原生原型,如下所示:
if (!("path" in Event.prototype))
Object.defineProperty(Event.prototype, "path", {
get: function() {
var path = [];
var currentElem = this.target;
while (currentElem) {
path.push(currentElem);
currentElem = currentElem.parentElement;
}
if (path.indexOf(window) === -1 && path.indexOf(document) === -1)
path.push(document);
if (path.indexOf(window) === -1)
path.push(window);
return path;
}
});
Run Code Online (Sandbox Code Playgroud)
但是,如果我是你,我不会扩展原型 - 我会创建一个如上所述的函数.
如果你想只覆盖那些类型的事件,我也会将Event.prototype更改为MouseEvent.prototype.
| 归档时间: |
|
| 查看次数: |
7559 次 |
| 最近记录: |