Ich versuche, ein benutzerdefiniertes JavaScript-Ereignis zu erstellen. Das Ereignis funktioniert und wird korrekt ausgelöst, aber das "Detail" -Objekt, das ich übergebe, ist nicht verfügbar.JavaScript CustomEvent Detail nicht übergeben
Hier ist der Code, den ich verwende, um das Ereignis zu erstellen und zu versenden;
var double_tap = new CustomEvent("doubleTap", {
detail: {
hello: 'world'
},
bubbles: true,
cancelable: true
});
this.dispatchEvent(double_tap);
Dann verwende ich jquery, um einen Ereignis-Listener zum Körper hinzuzufügen;
$('body').on('doubleTap', function(e) {
console.log(e);
});
Es tut Feuer, und das Konsolenprotokoll geschieht, aber leider das Protokoll gibt nur die Ereignisdetails einschließlich Blasen und kündbare Eigenschaften, aber nie das ‚Details‘ Objekt, so dass Informationen nicht zugänglich ist.
Hier ist eine JSBIN als Beispiel, im Erstellen des Ereignisses auf das Click-Ereignis des Körpers, so dass Sie die Konsole sehen können; http://jsbin.com/looseroots/6
Ich möchte in der Lage sein, die Daten aus dem "Detail" -Objekt zu erhalten, wenn das Ereignis ausgelöst wird. Was mache ich falsch? Ich habe dies in Chrome getestet und Safari auf iOS
So einfach, aber keine der Dokumentation, die ich finden konnte, erklären die CustomEvent-Methode wies darauf hin. Vielen Dank! – Joel
Dies ist nicht wirklich ein CustomEvent-Problem, ich glaube, dass jQuery ein DOM-Ereignis in ein eigenes Event-Objekt umschließt. (Ich bin kein jQuery-Experte, also könnte ich falsch liegen) – lostsource
Kann auch Datenargumente zu jQuery-Handlern hinzufügen, wenn alle behalten möchten Code innerhalb von jQuery Realm. '$ ('body'). on ('doubleTap', Funktion (e, arg1, arg2)' – charlietfl