Es gibt eine JS Fiddle here, können Sie e.target ohne Klonen zu einem neuen Objekt ersetzen?Ersetzen/Überschreiben/Überschreiben e.target in einem JavaScript-Ereignis
Die Zuhörer von dieser Geige sind unten wiederholt;
one.addEventListener('click', function(e) {
// default behaviour, don't modify the event at all
logTarget(e);
});
two.addEventListener('click', function(e) {
// replace the value on the same object, which seems to be read-only
e.target = document.createElement('p');
logTarget(e);
});
three.addEventListener('click', function(e) {
function F(target) {
// set another property of the same name on an instance object
// which sits in front of our event
this.target = target;
}
// put the original object behind it on the prototype
F.prototype = e;
logTarget(new F(document.createElement('p')));
});
four.addEventListener('click', function(e) {
// create a new object with the event behind it on the prototype and
// our new value on the instance
logTarget(Object.create(e, {
target: document.createElement('p')
}));
});
Tolle Arbeit, danke! –
Funktioniert nicht in Chrome 51. Alle Eigenschaften außer dem Ziel des neuen Ereignisobjekts lauten '[Ausnahme: TypeError: Illegaler Aufruf bei MouseEvent.remoteFunction (: 3: 14)]' –