他的属性提供了关于当前正被处理的已触发事件的大量信息。这包括一些细节,比如在哪个元素上触发的事件、鼠标事件的坐标以及键盘事件中单击了哪个键。
当触发 dom 树中一个元素上的事件时,事件模型会检查这个元素是否已经创建了特定的事件处理器。如果是,就会调用已创建的事件处理器。然后,事件模型会检查目标元素的父元素,看其是否已经为此事件类型创建了处理器。如果是,就调用已创建的处理器,之后检查它的父元素,以及父元素的父元素,以此类推,直到 dom 树的顶部。
<html> <head> <title>jQuery Events Example</title> <script type="text/javascript" src="../scripts/jquery-1.7.1.js"></script> <script type="text/javascript"> $(function () { $('#example') .bind('click', function (event) { alert('BOOM once!'); }) .bind('click', function (event) { alert('BOOM twice!'); }) .bind('click', function (event) { alert('BOOM three times!'); }); }); </script> </head> <body> <img id="example" src="example.jpg" /> </body> </html>
bind(eventType, data, handler); bind(eventMap)
可以为事件名称添加以圆点分隔的后缀来指定命名空间,以批量操作事件处理器。
可以通过单个bind()方法来为一个元素绑定多个事件。
$('.whatever').bind({ click:function(event){/* handle */}, mouseenter: function (event) {/* handle */ }, mouseleave: function (event) {/* handle */ } })
特定的事件绑定:
blur change click dblclick error focus focusin focusout keydown keypress keyup load mousedown mouseenter mouseleave mousemove mouseout mouseover mouseup ready resize scroll select submit unload
当使用这些便捷方法时,event.data值是只读的。他们有一个参数 listener 函数,表示事件处理器。
focusin focusout
one(eventType, data, listener)
unbind(eventType, listener); unbind(event)
删除特定的事件处理器
删除命名空间中的所有事件处理器
$('*').unbind('.fred')
独立于浏览器的jQuery.Event属性和方法
名称 | 描述 |
altKey | |
ctrlKey | |
currentTarget | |
data | |
metaKey | |
pageX | |
pageY | |
relatedTarget | |
screenX | |
screenY | |
shiftKey | |
result | |
target | |
timestamp | |
type | |
which | |
preventDefault() | |
stopPropagation() | |
stopImmediatePropagation() | |
isPropagationStopped() | |
isImmediatePropagationStopped() |
live(eventType, data, listener)
die(eventType, listener)
trigger(eventType, data)
triggerHandler(eventType, data)
触发的便捷方法
blur() change() click() dblclick() error() focus() focusin() focusout() keydown() keypress() keyup() load() mousedown() mouseenter() mouseleave() mousemove() mouseout() mouseover() mouseup() resize() scroll() select() submit() unload()
toggle(listener1, listener2, ...)
hover(enterHandler, leaveHandler); hover(handler)