事件对象
jQuery的事件系统根据W3C standards规范化了事件对象。该事件对象确保能够传递给事件处理函数。很多来自原始事件的属性被复制过来,并规范化到新的事件对象中。
jQuery.Event构造器
jQuery.event
构造器是曝露的,而且能够在调用.trigger()
时使用。操作符new
是可有可无的。
检查.trigger()
的文档,以查看如何把它与你自己的事件对象组合起来。
示例:
//不用“new” 操作符创建一个jQuery.Event 对象。 var e = jQuery.Event( "click" ); // 触发一个仿造的点击事件 jQuery( "body" ).trigger( e );
自从jQuery 1.6,你可以向jQuery.Event()
传递一个对象,而且它的属性会被设置在新创建的Event对象上。
示例:
// 用指定的事件属性创建一个新的jQuery.Event对象。 var e = jQuery.Event( "keydown", { keyCode: 64 } ); // 用keyCode 64触发一个仿造的按键事件 jQuery( "body" ).trigger( e );
事件属性
jQuery规范化了下面的属性,以实现跨浏览器一致性:
target
relatedTarget
pageX
pageY
which
metaKey
以下的属性也可以复制到事件对象,虽然它们有些值可能是undefined,取决于事件本身:
altKey、bubbles、button、buttons、cancelable、char、charCode、clientX、clientY、ctrlKey、currentTarget、data、detail、eventPhase、key、keyCode、metaKey、offsetX、offsetY、originalTarget、pageX、pageY、relatedTarget、screenX、screenY、shiftKey、target、toElement、view、which
其它属性
某些事件可能具有特有的属性。这些可以作为event.originialEvent
对象的属性来访问。
示例:
// 给原生的`drop`事件添加dataTransfer属性。 // 以捕捉拖拽到浏览器窗口的文件的信息。 jQuery.event.props.push( "dataTransfer" );
处于事件冒泡阶段内的当前DOM元素。
如果当前正在执行的处理函数被绑定了,向一个事件方法传递一个可选的数据对象。
当前调用的jQuery事件处理函数所附加的元素。
返回event.preventDefault()是否已经在该事件对象上调用过了。
返回event.stopImmediatePropagation()是否已经在该事件对象上调用过了。
返回event.stopPropagation()是否已经在该事件对象上调用过了。
当事件被引发时,表示META键是否已经压进去了。
当事件被触发时,所指定的命名空间。
相对于document左边缘的鼠标位置。
相对于document上边缘的鼠标位置。
如果调用了该方法,就不会触发事件的默认行为。
别的涉及到该事件的DOM元素,如果有的话。
由某个事件触发的事件处理函数返回的最后值,除非该值是undefined。
停止执行处理函数的剩余部分,防止事件沿着DOM树向上冒泡。
防止事件沿着DOM树向上冒泡,防止任何父元素的处理函数被该事件通知到。
初始化该事件的DOM元素。
浏览器创建事件的时间,与1970年1月1日的时间差,以毫秒计。
描述事件的性质。
对于键盘或鼠标事件,该属性标明了指定的键或者按钮是否被按下了。