Polymer 1.0 kullanıyorum ve Chrome'da bir butona tıkladığınızda MouseEvent
üretiliyor. Bu nesnesinin, tıklatılan düğmeye sıralı bir ana öğe dizisi olan bir path
özelliği vardır. Ancak, Firefox & Safari'de, path
özelliğine sahip olmayan click
oluşturulur. Bana aynı bilgiyi veren click
nesnesinin eşdeğer bir özelliği var mı?Firefox & Safari'de MouseEvent.path eşdeğeri
9
A
cevap
24
Bu mevcut değil, ama gerçekten bu özelliğe sahip olmak istiyorsanız, o zaman şöyle Olay nesnesinin yerli prototip genişletmek olabilir: Ancak
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;
}
});
senin yerinde olsaydım, yapmazdım prototip uzatmak - yerine yukarıda belirtilen gibi bir işlev yaratacağım.
Ayrıca, yalnızca bu tür olayları kapsamak istiyorsanız, Event.prototype öğesini MouseEvent.prototype olarak değiştirirdim.
Awesomesauce. Tam olarak aradığım cevap değil, sorunumu mükemmel bir şekilde çözüyor. – wogsland
Merak etme, @wogsland, hangi cevabı veya cevabını beklediniz? –
Firefox'ta oluşturulan ve henüz henüz tahmin etmediğim nesnede eşdeğer bir özellik olacağını düşünmüştüm. – wogsland