焦点:使浏览器能够区分用户输入的对象,当一个元素有焦点的时候,那么他就可以接收用户的输入。

  我们可以通过一些方式给元素设置焦点

  1、点击

  2、tab

  3、js

  不是所有元素都能够接收焦点的.能够响应用户操作的元素才有焦点

  焦点事件:

    onfocus : 当元素获取到焦点的时候触发

    onblur : 当元素失去焦点的时候触发

  焦点方法:

    元素.focus() 给指定的元素设置焦点

    元素.blur() 取消指定元素的焦点

    元素.select() 选择指定元素里面的文本内容

event:事件对象  当一个事件发生时,和当前这个对象发生的这个事件有关的一些详细信息都会被临时保存到一个指    定的地方—event对象,供我们在需要的时候调用。

    //**

    事件对象必须在一个事件调用的函数里面使用才有内容

    事件函数:事件调用的函数,一个函数是不是事件函数,不在定义的决定,而是取决于这个调用的时候

    兼容性:

      ie/chrome:event是一个内置的全局对象

      标准下:事件对象是通过事件函数的第一个参数传入

      如果一个函数是被事件调用的,那么,这个函数定义的第一个参数就是事件对象

    clientX[Y] : 当一个事件发生的时候,鼠标到页面可视区的距离

事件流:事件捕获   事件冒泡

  事件冒泡:当一个元素接收到事件的时候,会把他接收到的所有传播给他的父级,一直到顶层window.事件冒泡机制

  阻止事件冒泡:当前要阻止冒泡的事件函数中调用 event.cancelBubble = true;

  //**

  给一个对象绑定一个事件处理函数的第一种形式:obj.onclick = fn;

  给一个对象的同一个事件绑定多个不同的函数

  给一个元素绑定事件函数的第二种形式:

    ie:obj.attachEvent(事件名称,事件函数);

      1、没有捕获

      2、事件名称有on

      3、事件函数执行顺序:标准ie >>正序    非标准ie  >>  倒序

      4、this指向window

    标准:obj.addEventListener(事件名称,事件函数,是否捕获);  //**是否捕获,默认为false

      1、有捕获

      2、事件名称没有on

      3、事件执行的顺序是正序

      4、this触发该事件的对象

    call():函数下的一个方法,call方法第一个参数可以改变函数执行过程中的内部的this的指向,call方法第二个参数开始就是函数的参数列表

  事件捕获:当一个对象接收事件时,事件会先经过父级元素,由父级元素一层一层传递给该对象,这个过程称为事件捕获

  取消事件绑定:

    ie:obj.detachEvent(事件名称,事件函数);

    标准下:obj.removeEventListener(事件名称,事件函数,是否捕获);

键盘事件:

  onkeydown:当键盘按键按下的时候触发

  onkeyup:当键盘按键抬起的时候触发

  event.keyCode:数字类型  键盘按键的值  键值

    功能键:ctrlKey   shiftKey    altKey    布尔值

    当一个事件发生的时候,如果ctrl || shift || alt 是按下的状态,返回true,否则返回false

  不是所有元素都能够接收键盘事件,能够响应用户输入的元素,能够接收焦点的元素就能够接收键盘事件

  事件默认行为:当一个事件发生时,浏览器自己会默认做的事情

  怎么阻止?

  分析当前这个行为是什么事件触发的,然后在这个事件的处理函数中使用return false;

  oncontentmenu:右键菜单事件,当右键菜单(环境菜单)显示出来的时候触发