JavaScript + Chrome - 事件捕获

时间:2016-07-16 08:12:18

标签: javascript google-chrome

我想弄清楚事件的运作方式。我有这段代码:

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; 
}

令我困惑的是 - 在keyPressed函数console.log(e)内部产生KeyboardEvent,在mousePos(e)内部产生MouseEvent。我无法说明这两个 ' 之间的区别是什么?

1 个答案:

答案 0 :(得分:0)

  

让我感到困惑的是 - 在keyPressed函数console.log(e)内部产生KeyboardEvent,在mousePos(e)内部产生MouseEvent。我不知道这两者之间的区别是什么?'会发生什么?

浏览器创建事件对象并在文档元素处触发它们。当事件与键盘相关时,浏览器会创建KeyboardEvent。当它与鼠标相关时,会触发MouseEvent。如果它与其他东西有关,它将创造并发射一种不同类型的事件。

"分化"基于导致事件被触发的原因:键盘操作或鼠标操作。