2016-07-16 6 views
0

Ich versuche herauszufinden, wie Ereignisse funktionieren. Ich habe dieses Stück Code:JavaScript + Chrome - Ereigniserfassung

document.captureEvents(Event.MOUSEMOVE);  
document.onmousemove = mousePos;  
document.onkeypress = keyPressed; 

var keyStroke = 0; 
var mouseX = 0; 
var mouseY = 0; 

function mousePos(e) { 
    console.log(e); 
    mouseX = e.pageX; 
    mouseY = e.pageY; 
    document.formex.mousex.value = mouseX; 
    document.formex.mousey.value = mouseY; 
    return true; 
}  

function keyPressed(e) { 
    console.log(e); 
    keyClicked = e.key; 
    document.formex.keypress.value = keyStroke; 
    return true; 
} 

Was mich verwirrt - innerhalb von keyPressed Funktion console.log(e) ergibt Keyboard, innerhalb von mousePos(e) es ergibt Mouseevent. Ich kann nicht sagen, wie die Unterscheidung zwischen diesen beiden 'e' passiert?

+0

'captureEvents' ist sowohl nicht Standard als auch veraltet. Was ist Ihr Ziel bei der Verwendung? –

+0

Hallo, an diesem Punkt ist mein Ziel rein akademisch - besseres Verständnis dafür, wie diese beiden Parameter vom Browser unterschieden werden, obwohl sie auf der Oberfläche identisch erscheinen. Vielen Dank. –

+0

Ich verstehe das Gesamtziel der Frage. Was ist insbesondere das Ziel, eine nicht standardisierte, veraltete Funktion als Teil davon zu verwenden? –

Antwort

0

Was mich verwirrt - innerhalb von keyPressed Funktion console.log(e) Ausbeuten KeyboardEvent, innerhalb von mousePos(e) es MouseEvent ergibt. Ich kann nicht sagen, wie die Unterscheidung zwischen diesen beiden "e" passiert?

Der Browser erstellt Ereignisobjekte und löst sie an den Dokumentelementen aus. Wenn sich das Ereignis auf die Tastatur bezieht, erstellt der Browser eine KeyboardEvent. Wenn es sich auf die Maus bezieht, wird ein MouseEvent ausgelöst. Wenn es sich auf etwas anderes bezieht, wird es eine andere Art von Ereignis kreieren und auslösen.

Die "Differenzierung" basiert auf dem, was das Ereignis ausgelöst hat: Eine Tastaturaktion oder eine Mausaktion.

+0

Macht Sinn, aber ich hatte das Gefühl, dass ich etwas Grundlegendes verpasse. Der Teil, der mich verwirrte: 'document.onmousemove = mousepos; document.onkeypress = keyPressed; '. Liest man es von links nach rechts (Dokument über Mausmaus rufen Sie 'mousPos' an und übergeben Sie Ihr 'e')? –

+0

@YevgenyKozlov: Wirklich, ja. Beachten Sie, dass das Anhängen von Event-Handlern auf diese Weise nicht wirklich bevorzugt wird, sondern stattdessen "addEventListener". –

Verwandte Themen