2017-03-02 3 views

Antwort

1
stammt

Sie können benutzerdefiniertes Ereignis mit dem Event Konstruktor wie folgt:

var event = new Event('build'); 

// Listen for the event. 
elem.addEventListener('build', function (e) { ... }, false); 

// Dispatch the event. 
elem.dispatchEvent(event); 

um weitere Daten zu dem Ereignisobjekt hinzufügen, die CustomEvent Schnittstelle vorhanden ist und die Detail-Eigenschaft kann verwendet werden, um benutzerdefinierte Daten zu übergeben. Zum Beispiel könnte das Ereignis wie folgt erstellt werden:

var event = new CustomEvent('build', { 'detail': elem.dataset.time }); 

Dies wird dann können Sie die zusätzlichen Daten in dem Ereignis-Listener zuzugreifen:

function eventHandler(e) { 
    console.log('The time is: ' + e.detail); 
} 

details are here

1

Sie CustomEvent() verwenden können Erbauer, .dispatchEvent(), überprüfen Sie, ob "detail" Eigentum ist inevent; wenn true und

element.addEventListener("scroll", function(event) {  
    if ("detail" in event && event.detail.id === 123) { 
    // do stuff with `event.detail.prop` 
    } 
}); 

var id = 123; 
var o = {detail:{id: id, prop:"abc"}}; 

var e = new CustomEvent("scroll", o); 
element.dispatchEvent(e); 
+2

Sollte das nicht sein 'Veranstaltung [ "Detail"] && event [ "Detail"]' –

+0

@KScandrett Ja, siehe aktualisiert Post. Alternativ 'if ("detail" in event) {} ' – guest271314

Verwandte Themen