2016-05-29 10 views
1

ich das nicht unterstand:Browser JavaScript benutzerdefinierte Ereignisse zu schaffen

Ich versuche, ein benutzerdefiniertes Ereignis zu schaffen, die ausgelöst werden sollen, wenn eine Liste vollständig in einem Tabellenkörper geladen wird. Wie folgt aus (führt nach Liste geladen ist):

var event = new Event('mklistloaded', { 
     name: 'listname' 
    }); 

    document.dispatchEvent(event); 

Und das ist die "empfangenden" Ende:

document.addEventListener('mklistloaded', function(e) { 

    console.log('mklistloaded event: ' + JSON.stringify(e)); 

}); 

Aber Konsolenprotokoll druckt:

mklistloaded event: {"isTrusted":false} 

Das ist ganz die gleiche wie in dem mozilla-Beispiel beschrieben:

https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events

Was mache ich hier falsch?

Antwort

1

Sie verfehlten den Abschnitt in der docs"benutzerdefinierte Daten hinzufügen - CustomEvent()"

document.addEventListener('mklistloaded', function(e) { 
 
    console.log('mklistloaded detail: ', e.detail); 
 
}); 
 
// use CustomEvent() instead of Event() 
 
var event = new CustomEvent('mklistloaded', { 
 
    'detail': 'listname' 
 
}); 
 

 
document.dispatchEvent(event);

Beachten Sie, dass es mit dem Eigenschaftsnamen detail

zu erfordern scheint