事件对象——event

一、介绍

把一个click时间log出来是这样的:

{
    altKey:false,
    bubbles:true,
    button:0,
    buttons:0,
    cancelBubble:false,
    cancelable:true,
    clientX:1,
    clientY:3,
    composed:true,
    ctrlKey:false,
    currentTarget:null,
    defaultPrevented:false,
    detail:1,
    eventPhase:0,
    fromElement:null,
    isTrusted:true,
    layerX:1,
    layerY:147,
    metaKey:false,
    movementX:0,
    movementY:0,
    offsetX:1,
    offsetY:0,
    pageX:1,
    pageY:147,
    path:(5) [div, body, html, document, Window],
    relatedTarget:null,
    returnValue:true,
    screenX:1,
    screenY:94,
    shiftKey:false,
    sourceCapabilities:InputDeviceCapabilities,
    srcElement:div,
    target:div,
    timeStamp:12270.44,
    toElement:div,
    type:"click",
    view:Window ,
    which:1,
    x:1,
    y:3
}

二、详细的一些注意点

在IE8,事件触发有一个对象叫做event,event里面装着各种事件的相关属性值

但是Firefox不支持event,直到现在最新版本都不支持,chrome和IE9支持ev和event

  chrome IE9+ FF IE8-
ev  
event  

 

document.onkeydown=function (ev)
{
    var oEvent=ev||event;
    
    alert(oEvent.keyCode);
};

1.兼容事件对象  var oEvent=ev||event;

2.阻止事件冒泡  oEvent.cancelBubble = true;

document.onclick=function (ev)
{
    var oEvent=ev||event;
    
    oEvent.cancelBubble = true;
};

3.默认行为

禁止默认事件,return false可以去除浏览器自带行为。

4.ctrl+回车

onkeydown事件会多出keyCode属性

var oTxt1=document.getElementById('txt1');
    
oTxt1.onkeydown=function (ev)
{
    var oEvent=ev||event;
    if(oEvent.keyCode==13 && oEvent.ctrlKey)
    {
        oTxt2.value+=oTxt1.value+'
';
        oTxt1.value='';
    }
};

除了ctrlKey外,还有shiftKey和altKey

原文地址:https://www.cnblogs.com/amiezhang/p/7761386.html