Sto tentando di creare un evento javascript personalizzato. L'evento funziona e si attiva correttamente, ma l'oggetto "dettagli" che sto passando non è disponibile.Javascript CustomEvent dettaglio non viene passato
Ecco il codice che sto utilizzando per creare e inviare l'evento;
var double_tap = new CustomEvent("doubleTap", {
detail: {
hello: 'world'
},
bubbles: true,
cancelable: true
});
this.dispatchEvent(double_tap);
Quindi sto utilizzando jquery per aggiungere un listener di eventi al corpo;
$('body').on('doubleTap', function(e) {
console.log(e);
});
Lo fa fuoco e il log della console accade, ma purtroppo il registro emette solo i dettagli dell'evento, tra cui le bolle e le proprietà annullabili, ma mai l'oggetto 'dettaglio', in modo che l'informazione non è accessibile.
Ecco un esempio di jsbin, sto creando l'evento nell'evento click del corpo in modo da poter vedere la console; http://jsbin.com/looseroots/6
Mi piacerebbe essere in grado di ottenere i dati dall'oggetto 'dettagli' quando l'evento è attivato. Che cosa sto facendo di sbagliato? Ho testato questo in Chrome e Safari su iOS
Così semplice, ma nessuno della documentazione che ho trovato che spiega il metodo CustomEvent lo ha sottolineato. Grazie! – Joel
Questo non è un problema di CustomEvent, credo che jQuery avvolga un evento DOM nel proprio oggetto Event .. (non sono esperto di jQuery quindi potrei sbagliarmi) – lostsource
Puoi anche aggiungere argomenti di dati ai gestori jQuery se preferisci mantenere tutto codice all'interno di jQuery realm. '$ ('body'). on ('doubleTap', function (e, arg1, arg2)' – charlietfl