事件

鼠标事件

onmousedown, onmouseup, onclick, ondbclick, onmousewheel, onmousemove, onmouseover, onmouseout

触摸事件

ontouchstart, ontouchend, ontouchmove

键盘事件:

onkeydown, onkeyup, onkeypress

页面相关事件:

onload, onmove(浏览器窗口被移动时触发), onresize(浏览器的窗口大小被改变时触发), onscroll(滚动条位置发生变化时触发)

表单相关事件

onblur(元素失去焦点时触发), onchange(元素失去焦点且元素内容发生改变时触发), onfocus(元素获得焦点时触发), onreset(表单中reset属性被激活时触发), onsubmit(表单被提交时触发);oninput(在input元素内容修改后立即被触发,兼容IE9+)

编辑事件

onbeforecopy:当页面当前的被选择内容将要复制到浏览者系统的剪贴板前触发此事件;

onbeforecut:当页面中的一部分或者全部的内容将被移离当前页面[剪贴]并移动到浏览者的系统剪贴板时触发此事件;

onbeforeeditfocus:当前元素将要进入编辑状态;

onbeforepaste:内容将要从浏览者的系统剪贴板传送[粘贴]到页面中时触发此事件;

onbeforeupdate:当浏览者粘贴系统剪贴板中的内容时通知目标对象;

oncontextmenu:当浏览者按下鼠标右键出现菜单时或者通过键盘的按键触发页面菜单时触发的事件;

oncopy:当页面当前的被选择内容被复制后触发此事件;

oncut:当页面当前的被选择内容被剪切时触发此事件;

onlosecapture:当元素失去鼠标移动所形成的选择焦点时触发此事件;

onpaste:当内容被粘贴时触发此事件;

onselect:当文本内容被选择时的事件;

onselectstart:当文本内容选择将开始发生时触发的事件;

拖动事件

ondrag:当某个对象被拖动时触发此事件 [活动事件];

ondragdrop:一个外部对象被鼠标拖进当前窗口时触发;

ondragend:当鼠标拖动结束时触发此事件;

ondragenter:当对象被鼠标拖动的对象进入其容器范围内时触发此事件;

ondragleave:当对象被鼠标拖动的对象离开其容器范围内时触发此事件;

ondragover:当某被拖动的对象在另一对象容器范围内拖动时触发此事件;

ondragstart:当某对象将被拖动时触发此事件;

ondrop:在一个拖动过程中,释放鼠标键时触发此事件;

自定义事件

var EventCenter = {
  on: function(type, handler){
    document.addEventListener(type, handler)
  },
  fire: function(type, data){
    return document.dispatchEvent(new CustomEvent(type, {
      detail: data
    }))
  }
}

EventCenter.on('hello', function(e){
  console.log(e.detail)
})

EventCenter.fire('hello', '你好')

推荐阅读更多精彩内容