12.2.3 事件

页面载入

ready(fn):当DOM载入就绪可以查询及操纵时绑定一个要执行的函数,可以极大地提高web应用程序的响应速度。

有一个参数--对jQuery函数的引用--会传递到这个ready事件处理函数中。

可以给这个参数任意起一个名字,并因此可以不再担心命名冲突而放心地使用$别名。

事件处理

on(eve,[sel],[data],fn):在选择元素上绑定一个或多个事件的事件处理函数。

on()方法绑定事件处理程序到当前选定的jQuery对象中的元素。

events:一个或多个用空格分隔的事件类型和可选的命名空间,如"click"或"keydown.myPlugin" 。

selector:一个选择器字符串用于过滤器的触发事件的选择器元素的后代。

data:当一个事件被触发时要传递event.data给事件处理函数。

fn:该事件被触发时执行的函数。

off(eve,[sel],[fn]):fn:该事件被触发时执行的函数。

off() 方法移除用.on()绑定的事件处理程序。

one(type,[data],fn):为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数。

type:添加到元素的一个或多个事件。由空格分隔多个事件。必须是有效的事件。

data:将要传递给事件处理函数的数据映射。

fn:每当事件触发时执行的函数。

trigger(type,[data]):在每一个匹配的元素上触发某类事件。

type:一个事件对象或者要触发的事件类型。

data:传递给事件处理函数的附加参数。

triggerHandler(type, [data]):这个特别的方法将会触发指定的事件类型上所有绑定的处理函数。

但不会执行浏览器默认动作,也不会产生事件冒泡。

这个方法的行为表现与trigger类似,但有以下三个主要区别:

  • 第一,他不会触发浏览器默认事件。

  • 第二,只触发jQuery对象集合中第一个元素的事件处理函数。

  • 第三,这个方法的返回的是事件处理函数的返回值,而不是据有可链性的jQuery对象。

此外,如果最开始的jQuery对象集合为空,则这个方法返回 undefined 。

type:要触发的事件类型。

data:传递给事件处理函数的附加参数。

事件切换

hover([over,]out):一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。

over:鼠标移到元素上要触发的函数。

out:鼠标移出元素要触发的函数。

toggle([spe],[eas],[fn]):用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件。

speed: 隐藏/显示 效果的速度。默认是 “0"毫秒。可能的值:slow,normal,fast。”

easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"。

fn:在动画完成时执行的函数,每个元素执行一次。

事件

blur([[data],fn]):当元素失去焦点时触发 blur 事件。

data:blur([Data], fn) 可传入data供函数fn处理。

fn:在每一个匹配元素的blur事件中绑定的处理函数。

change([[data],fn]):当元素的值发生改变时,会发生 change 事件。

data:change([Data], fn) 可传入data供函数fn处理。

fn:在每一个匹配元素的change事件中绑定的处理函数。

click([[data],fn]):触发每一个匹配元素的click事件。

data:click([Data], fn) 可传入data供函数fn处理。

fn:在每一个匹配元素的click事件中绑定的处理函数。

dblclick([[data],fn]):当双击元素时,会发生 dblclick 事件。

data:dblclick([Data], fn) 可传入data供函数fn处理。

fn:在每一个匹配元素的dblclick事件中绑定的处理函数。

focus([[data],fn]):当元素获得焦点时,触发 focus 事件。

可以通过鼠标点击或者键盘上的TAB导航触发。这将触发所有绑定的focus函数,注意,某些对象不支持focus方法。

data:focus([Data], fn) 可传入data供函数fn处理。

fn:在每一个匹配元素的focus事件中绑定的处理函数。

focusin([data],fn):当元素获得焦点时,触发 focusin 事件。

focusin事件跟focus事件区别在于,他可以在父元素上检测子元素获取焦点的情况。

data:focusin([Data], fn) 可传入data供函数fn处理。

fn:在每一个匹配元素的focusin事件中绑定的处理函数。

focusout([data],fn):当元素失去焦点时触发 focusout 事件。

focusout事件跟blur事件区别在于,他可以在父元素上检测子元素失去焦点的情况。

data:focusout([Data], fn) 可传入data供函数fn处理。

fn:在每一个匹配元素的focusout事件中绑定的处理函数。

keydown([[data],fn]):当键盘或按钮被按下时,发生 keydown 事件。

注释:如果在文档元素上进行设置,则无论元素是否获得焦点,该事件都会发生。

data:keydown([Data], fn) 可传入data供函数fn处理。

fn:在每一个匹配元素的keydown事件中绑定的处理函数。

keypress([[data],fn]):当键盘或按钮被按下时,发生 keypress 事件。

keypress 事件与 keydown 事件类似,当按钮被按下时,会发生该事件。

它发生在当前获得焦点的元素上,不过,与 keydown 事件不同,每插入一个字符,就会发生 keypress 事件。

注释:如果在文档元素上进行设置,则无论元素是否获得焦点,该事件都会发生。

data:keypress([Data], fn) 可传入data供函数fn处理。

fn:在每一个匹配元素的keypress事件中绑定的处理函数。

keyup([[data],fn])

当按钮被松开时,发生 keyup 事件。它发生在当前获得焦点的元素上。

注释:如果在文档元素上进行设置,则无论元素是否获得焦点,该事件都会发生。

data:keyup([Data], fn) 可传入data供函数fn处理。

fn:在每一个匹配元素的keyup事件中绑定的处理函数。

mousedown([[data],fn]):当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。

mousedown 与 click 事件不同,mousedown 事件仅需要按键被按下,而不需要松开即可发生。

data:mousedown([Data], fn) 可传入data供函数fn处理。

fn:在每一个匹配元素的mousedown事件中绑定的处理函数。

mouseenter([[data],fn]):当鼠标指针穿过元素时,会发生 mouseenter 事件。该事件大多数时候会与mouseleave 事件一起使用。

与 mouseover 事件不同,只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。如果鼠标指针穿过任何子元素,同样会触发 mouseover 事件。

mouseleave([[data],fn]):当鼠标指针离开元素时,会发生 mouseleave 事件。该事件大多数时候会与mouseenter 事件一起使用。

与 mouseout 事件不同,只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。如果鼠标指针离开任何子元素,同样会触发 mouseout 事件。

mousemove([[data],fn]):当鼠标指针在指定的元素中移动时,就会发生 mousemove 事件。

mousemove事件处理函数会被传递一个变量——事件对象,其.clientX 和 .clientY 属性代表鼠标的座标。

mouseout([[data],fn]):当鼠标指针从元素上移开时,发生 mouseout 事件。

该事件大多数时候会与 mouseover 事件一起使用。

注释:与 mouseleave 事件不同,不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。

mouseover([[data],fn]):当鼠标指针位于元素上方时,会发生 mouseover 事件。

该事件大多数时候会与 mouseout 事件一起使用。

注释:与 mouseenter 事件不同,不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。

mouseup([[data],fn]):当在元素上放松鼠标按钮时,会发生 mouseup 事件。

与 click 事件不同,mouseup 事件仅需要放松按钮。当鼠标指针位于元素上方时,放松鼠标按钮就会触发该事件。

resize([[data],fn]):当调整浏览器窗口的大小时,发生 resize 事件。

scroll([[data],fn]):当用户滚动指定的元素时,会发生 scroll 事件。

select([[data],fn]):当 textarea 或文本类型的 input 元素中的文本被选择时,会发生 select 事件。

submit([[data],fn]):当提交表单时,会发生 submit 事件。

延迟对象

def.done(d,[d]):当延迟成功时调用一个函数或者数组函数。

该参数可以是一个函数或一个函数的数组。

当延迟成功时,doneCallbacks被调用。

回调执行是依照他们添加的顺序。

一旦deferred.done()返回延迟对象,延迟对象的其它方法也可以链接到了这里,包括增加.done()方法。

当延迟解决,doneCallbacks执行使用参数提供给resolve或resolveWith方法依照添加的顺序调用。

def.fail(failCallbacks):当延迟失败时调用一个函数或者数组函数.。

该参数可以是一个函数或一个函数的数组。

当延迟失败时,doneCallbacks被调用。

回调执行是依照他们添加的顺序。

一旦deferred.fail()返回延迟对象,延迟对象的其它方法也可以链接到了这里,包括增加.done()方法。

当延迟解决,doneCallbacks执行使用参数提供给resolve或resolveWith方法依照添加的顺序调用。

def.reject(args):拒绝延迟对象,并根据给定的参数调用任何失败的回调函数。

当延迟被拒绝,任何failCallbacks添加的deferred.then或deferred.fail被调用。

回调按他们添加的顺序执行。每个回调传递的args在deferred.reject()中调用。

之后添加任何failCallbacks递延被拒绝进入状态时,立即执行添加,使用的参数被传递给.reject()调用。

def.rejectWith(c,[a]):拒绝延迟的对象,并根据给定的上下文和参数调用任何失败的回调函数。

当延迟被拒绝,任何doneCallbacks添加的deferred.then或deferred.fail被调用。

回调按他们添加的顺序执行。

每个回调传递的args在deferred.reject()中调用。

之后添加任何failCallbacks递延被拒绝进入状态时,立即执行添加,使用的参数被传递给.reject()调用。

def.resolve(args):解决递延对象,并根据给定的参数调用任何完成的回调函数。

当递延被解决,任何failCallbacks添加的deferred.then或deferred.fail被调用。

回调按他们添加的顺序执行。

每个回调传递的args在deferred.reject()中调用。

之后添加任何failCallbacks递延被拒绝进入状态时,立即执行添加,使用的参数被传递给.reject()调用。

def.resolveWith(c,[a]):解决递延对象,并根据给定的上下文和参数调用任何完成的回调函数。

当递延被解决,任何doneCallbacks 添加的deferred.then或deferred.fail被调用。

回调按他们添加的顺序执行。

每个回调传递的args在deferred.reject()中调用。

之后添加任何failCallbacks递延被拒绝进入状态时,立即执行添加,使用的参数被传递给.reject()调用。

def.promise([ty],[ta]):返回一个 Promise 对象用来观察当某种类型的所有行动绑定到集合,排队与否还是已经完成。

def.always(al,[al]):筛选器和/或链Deferreds的实用程序方法。

def.notify(args):调用一个给定args的递延对象上的进行中的回调 (progressCallbacks)。

def.notifyWith(c,[a]):去掉字符串起始和结尾的空格。

def.progress(proCal):当Deferred对象时生成进度通知时添加被访问处理程序。

def.state():确定一个Deferred对象的当前状态。

deferred.state()方法返回一个字符串,代表Deferred对象的当前状态。 Deferred对象可以在三种状态之一:

pending: Deferred对象是尚未完成状态 (不是 “rejected” 或 “resolved”).

resolved: Deferred对象是在解决状态,这意味着,deferred.resolve() 或者 deferred.resolveWith()被对象访问和doneCallbacks被访问(或在被调用的过程中) 。

rejected: Deferred对象是在被拒绝的状态,这意味着,deferred.reject() 或者 deferred.rejectWith() 被对象访问和failCallbacks被访问(或在被调用的过程中) 。

这种方法主要是有用的调试,以确定的,例如,递延是否已经得到解决,即使你打算拒绝它的内部代码。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章