什么是事件监听:当用户在界面上执行一个操作,例如按下键盘、拖动或者单击鼠标时,都将产生一个事件。类似的DOM事件如:onclick、onmouseover、onmouseout、onkeydown、onkeyup、onkeypress、onload、onselect、onchange、onchange、onfoucs、onblur等等。那么,我们对这些事件进行监听就叫做事件监听。
jquery总共提供了四种事件监听的方式,分别是bind、on、delegate、live,对应的解除事件监听的方式为unbind、off、undelegate、die。
bind() 方法向被选元素添加一个或多个事件处理程序,以及当事件发生时运行的函数。
live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。
delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
on() 方法在被选元素及子元素上添加一个或多个事件处理程序。
自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。该方法给
API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。所以在这里我们主要研究on()方法。
注意:使用on()方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。
提示:如果移除事件处理程序,使用off()方法。
提示:如果添加只运行一次的事件然后移除,请使用one()方法。
语法
$(selector).on(event,childSelector,data,function)
参数 | 描述 |
---|---|
event | 必需。规定要从被选元素移除的一个或多个事件或命名空间。由空格分隔多个事件值,也可以是数组。必须是有效的事件。 |
childSelector | 可选。规定只能添加到指定的子元素上的事件处理程序 ( 且不是选择器本身,比如已废弃的delegate( )方法 )。 |
data | 可选。规定传递到函数的额外数据。 |
function | 可选。规定当事件发生时运行的函数。 |