jQuery的事件处理方法介绍
2013-02-02 10:02
423 查看
在 jQuery的开发过程中,我们往往需要处理各种事件,例如,click(),hover()等。在jQuery的API中,我们可以使用不同的方法来将 这些事件绑定到特定的元素中。今天这篇文章中,我们将要介绍如何使用bind(),on(),live()和delegate()方法来绑定特定的事件, 什么情况下使用,什么情况下不适用它们。希望能够帮助大家更好的了解和使用jQuery的时间处理方法。如果你喜欢我们的文章,请给我们留言,谢谢!bind()方法
使用较早版本jQuery的教程或者应用中,我们往往使用bind()方法来将事件绑定到特定的元素上,如下:
在线演示
如 果大家点击运行上面在线演示的话,肯定会发现,当点击第一个图片时,会生成新的图片,但是如果你点击新生成的图片,不会继续执行添加新图片的操作。为什么 会这样呢? 因为使用bind绑定的元素是页面上所有存在的class=”scv”的元素,新生成的元素添加到DOM,并没有绑定我们添加的click方法。那么怎么 让新的图片也可以绑定我们click方法呢。我们可以使用clone()方法,如下:
在线演示
大家可以看到现在我们点击新添加的图片,也可以生成新的图片了。
live()方法
在老的jQuery版本中,我们有一个方法专门用来处理动态生成的元素的事件绑定 – live(),使用live()方法可以将方法绑定的效果应用到已存在或者新创建的DOM元素。代码如下:
如果大家运行演示,可以看到以上代码同样也可以达到效果。
live()调用过程如下:
我们首先将click方法绑定到了Document,然后,查找Document里是否有.scv这个元素。 这个过程对于性能来说可能比较浪费,所以我们可以使用如下带参数方法优化方式:
在线演示
Delegate方法
在最新的jQuery版本中,我们最好不要使用live()方法,因为它已经被放弃了,这里我们使用delegate方法来指定事件绑定的上下文,如下:
在线演示
注意:这里克隆后添加到的元素应该是你定义的上下文,否则,新生成的图片绑定不上click方法。
on()方法
其实在最新版本的jQuery类库中,所有以上方法在后面其实都是调用on()方法,所以,如果你开发最新版本的jQuery,完全可以使用on()方法来处理所有的事件绑定,避免过多的方法调用。如下:
代码和bind方法一样。
总结
总 的来说,最新的jQuery版本中,所有的方法基本最后都使用on()方法来处理,如果你针对新版本的jQuery做开发,大家可以考虑使用 delegate()和on()方法处理事件绑定,虽然以前方法也可以用,但是大都都已经退出历史舞台。
相关文章推荐
- jQuery的事件处理方法介绍 - bind(),live(),delegate(),on()
- jQuery的事件处理方法介绍 - bind(),live(),delegate(),on()
- jQuery的事件处理方法介绍 - bind(),live(),delegate(),on()
- jQuery基础系列(三)---事件介绍(3)---事件处理方法
- jQuery的事件处理方法介绍 - bind(),live(),delegate(),on()
- JQuery入门――用bind方法绑定事件处理函数应用介绍
- JQuery入门――用bind方法绑定事件处理函数应用介绍
- jQuery的事件处理方法介绍-bind(),live(),delegate(),on()
- jQuery的事件处理方法介绍 - bind(),live(),delegate(),on()
- [DOM Event Learning] Section 3 jQuery事件处理基础 on(), off()和one()方法使用
- jquery中的事件处理详细介绍
- [JQuery入门]——事件切换之hover()方法应用介绍
- Jquery 中为后生成或插入的 Html 元素先设定响应事件处理方法
- jQuery的事件处理方法
- jQuery事件 delegate()使用方法介绍
- jquery中的事件处理详细介绍
- jQuery用unbind方法去掉hover事件及其他方法介绍
- jquery技巧总结-jQuery对象,集合,方法扩展,事件处理,特效,解决冲突
- Jquery事件处理方法
- JQuery入门――事件切换之hover()方法应用介绍