10-事件对象

上篇介绍完咱们js的事件流的概念以后,相信你们对事件流也有所了解了。那么接下来咱们看一下jquery的事件操做。
jquery

 

在说jquery的每一个事件以前,咱们先来看一下事件对象浏览器

事件对象

Event 对象表明事件的状态,好比事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。函数

  1. 何时会产生Event 对象呢? 

         例如: 当用户单击某个元素的时候,咱们给这个元素注册的事件就会触发,该事件的本质就是一个函数,而该函数的形参接收一个event对象spa

       2.事件一般与函数结合使用,函数不会在事件发生前被执行!指针

 

事件流的由来(了解)

因为微软和网景乱搞,后来必需要为事件传播机制,制定一个标准,由于事件捕获是网景公司开发出来的,而事件冒泡是由微软公司开发出来的,它们都想要本身的技术成为标准,因此致使这两个公司总是干架,制定标准的人为了避免让它们干架,因此研发了事件流.code

 

关于event对象

  • 在触发的事件的函数里面咱们会接收到一个event对象,经过该对象咱们须要的一些参数,好比说咱们须要知道此事件做用到谁身上了,就能够经过event的属性target来获取到(IE暂且不谈),或者想阻止浏览器的默认行为能够经过方法preventDefault()来进行阻止.如下是event对象的一些属性和方法
属性 描述
altKey 返回当事件被触发时,”ALT” 是否被按下。
button 返回当事件被触发时,哪一个鼠标按钮被点击。
clientX 返回当事件被触发时,鼠标指针的水平坐标。
clientY 返回当事件被触发时,鼠标指针的垂直坐标。
ctrlKey 返回当事件被触发时,”CTRL” 键是否被按下。
metaKey 返回当事件被触发时,”meta” 键是否被按下。
relatedTarget 返回与事件的目标节点相关的节点。
screenX 返回当某个事件被触发时,鼠标指针的水平坐标。
screenY 返回当某个事件被触发时,鼠标指针的垂直坐标。
shiftKey 返回当事件被触发时,”SHIFT” 键是否被按下
  • IE 属性(除了上面的鼠标/事件属性,IE 浏览器还支持下面的属性)
属性 描述
cancelBubble 若是事件句柄想阻止事件传播到包容对象,必须把该属性设为 true。
fromElement 对于 mouseover 和 mouseout 事件,fromElement 引用移出鼠标的元素。
keyCode 对于 keypress 事件,该属性声明了被敲击的键生成的 Unicode 字符码。对于 keydown 和 keyup
offsetX,offsetY 发生事件的地点在事件源元素的坐标系统中的 x 坐标和 y 坐标。
returnValue 若是设置了该属性,它的值比事件句柄的返回值优先级高。把这个属性设置为
srcElement 对于生成事件的 Window 对象、Document 对象或 Element 对象的引用。
toElement 对于 mouseover 和 mouseout 事件,该属性引用移入鼠标的元素。
x,y 事件发生的位置的 x 坐标和 y 坐标,它们相对于用CSS动态定位的最内层包容元素。

 

 

  • 标准 Event 属性 下面列出了 2 级 DOM 事件标准定义的属性。
属性和方法 描述
bubbles 返回布尔值,指示事件是不是起泡事件类型。
cancelable 返回布尔值,指示事件是否可拥可取消的默认动做。
currentTarget 返回其事件监听器触发该事件的元素。
eventPhase 返回事件传播的当前阶段。
target 返回触发此事件的元素(事件的目标节点)。
timeStamp 返回事件生成的日期和时间。
type 返回当前 Event 对象表示的事件的名称。
initEvent() 初始化新建立的 Event 对象的属性。
preventDefault() 通知浏览器不要执行与事件关联的默认动做。
stopPropagation() 再也不派发事件。

Event对象的一些兼容性写法(了解)

  • 得到event对象兼容性写法 
    event || (event = window.event);
  • 得到target兼容型写法 
    event.target||event.srcElement
  • 阻止浏览器默认行为兼容性写法 
    event.preventDefault ? event.preventDefault() : (event.returnValue = false);
  • 阻止冒泡写法 
    event.stopPropagation ? event.stopPropagation() : (event.cancelBubble = true);
相关文章
相关标签/搜索