影响事件传播
除了将Event实例最常用的属性标准化以外,jQuery还提供标准方法用于影响事件传播方面,带来同样的好处。
stopPropagation()方法将防止事件沿着DOM树向上传播,而preventDefault()方法将取消可能引起任何语义操作的示例是,a元素的href链接加载、表单提交以及click事件引起复选框的状态切换。
如果想在停止事件传播的同时,取消事件的默认行为,可以返回false作为监听器函数的返回值。
除允许以独立于浏览器的方式建立事件处理以外,jQuery还提供一组命令,赋予我们在脚本控制下触发事件处理程序的能力。
触发事件处理程序
在相关事件触发通过DOM层次结构的事件传播时,事件处理程序被设计为被调用。但有时候我们想在脚本控制下触发处理程序的执行。可以把事件处理程序定义为顶层函数,以便通过名称调用它们。但是把事件处理程序定义为匿名的内联函数更为常见,并且非常方便。
jQuery定义在脚本控制下自动触发事件处理函数的一系列方法,从而帮助我们避免使用顶层函数。
语法:trigger(eventType)
功能:调用所有已匹配元素的为已传递事件类型而建立的任何事件处理程序。
参数 eventType:(字符串)指定将要调用的处理程序的事件类型名称。
返回:包装集。
注意:trigger()命令不会导致事件触发和通过DOM层次结构进行传播。
语法:eventName()
功能:调用为所有已匹配元素的指名事件类型而建立的任何事件处理程序。已支持的命令包括:blur()、click()、focus()、select()、submit()。
返回:包装集。
其他事件相关命令
语法:toggle(listenerOdd, listenerEven)
功能:把已传递函数建立为包装集所有元素的一对click事件处理程序,每当触发click事件就相互切换。
参数 listenerOdd:(函数)充当所有奇数次点击的click事件处理程序。
参数 listenerEven:(函数)充当所有偶数次点击的click事件处理程序。
返回:包装集。
该命令的觉用途是根据元素被点击的次数切换元素的启用状态。
语法:hover(overListener, outListener)
功能:建立已匹配元素的mouseover和mouseout事件处理程序。这些处理程序当且仅当元素所覆盖区域被进入和退出时触发,忽略鼠标指针从父元素到子元素上的迁移。
参数 overListener:(函数)作为mouseover事件处理程序的函数。
参数 outListener:(函数)作为mouseout事件处理程序的函数。
返回:包装集。