jQuery绑定事件方法及区别(bind,click,on,live,one)


Posted in jQuery onAugust 14, 2017

第一种方式:

$(document).ready(function(){
 $("#clickme").click(function(){
 alert("hello world click")
 })
})

第二种方式(简写方式为第一种):

$('#clickmebind').bind("click", function(){
 alert("Hello World bind");
});

第三种方式:

$('#clickmeon').on("click",function(){
 alert("hello world on")
})

注意:第三种方式只适用于jquery 1.7以上的版本

第四种方式:

$("button").live("click",function(){
 $("p").slideToggle();
});

第五种方式:

$("div").delegate("button","click",function(){
 $("p").slideToggle();
});

如果只绑定一次事件,那接着用one()吧,这个没有变化。

$(document).ready(function(){
$("p").one("click",function(){


$(this).animate({fontSize:"+=6px"});

});
});

下面就来了解下它们之间的区别

bind(type,[data],fn) 为每个匹配元素的特定事件绑定事件处理函数
$(“a”).bind(“click”,function(){alert(“ok”);});

live(type,[data],fn) 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的
$(“a”).live(“click”,function(){alert(“ok”);});

delegate(selector,[type],[data],fn) 指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数
$(“#container”).delegate(“a”,”click”,function(){alert(“ok”);})

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

最大的差别:bind()的事件函数只能针对已经存在的元素进行事件的设置。如果你想对动态创建的元素bind()事件,是没有办法达到效果的,但是live(),on(),delegate()均支持未来新添加元素的事件设置。

.bind()是直接绑定在元素上()
jquery1.7版本以前比较受推崇,1.7版本出来之后,官方已经不推荐用bind(),替代函数为on(),这也是1.7版本新添加的函数,同样,可以用来代替live()函数,live()函数在1.9版本已经删除;

.delegate()则是更精确的小范围使用事件代理,性能优于.live()(在Jquery1.7中已经移除)

.live()则是通过冒泡的方式来绑定到元素上的。更适合列表类型的,绑定到document
DOM节点上。和.bind()的优势是支持动态数据。(在Jquery1.7中已经移除,相应die()也移除)

live()函数和delegate()函数两者类似,但是live()函数在执行速度,灵活性和CSS选择器支持方面较delegate()差些

.on()则是最新的1.9版本整合了之前的三种方式的新事件绑定机制(在Jquery1.7中添加,相应off()也添加)

jquery1.4 及之前的版本,由.click() 或 bind()方法绑定的事件,不能适用脚本创建的新元素:即是说页面加载完成后,再动态创建的DOM元素并不能响应之前绑定的事件!

旧版本的处理方法是使用.live()方法来代替事件绑定.bind(),使得绑定的事件能适用脚本创建的新元素。

但自jq1.7版本开始,官方已明文表示不再推荐使用使用.live()方法,官方解释为:live()调用过程首先将事件方法绑定到了Document,然后,查找Document里是否有匹配元素。
这个过程对于性能来说可能比较浪费。官方推荐将.live()改成Delegate()方法,适用脚本创建的新元素。

jq1.8开始,官方又再次申明:如果你开发最新版本的jQuery,完全可以使用on()方法来处理所有的事件绑定,避免过多的方法调用,因为其实在最新版本的jQuery类库中,所有以上旧版方法在后面其实都是调用on()方法。

总结

jQuery推出on()的目的有2个,一是为了统一接口,二是为了提高性能,所以从现在开始用on()替换bind(), live(), delegate吧。

以上就是小编为大家整理的jq绑定事件方法及区别的全部内容啦~希望大家继续支持三水点靠木~

jQuery 相关文章推荐
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 jQuery
jQuery树插件zTree使用方法详解
May 02 jQuery
一个有意思的鼠标点击文字特效jquery代码
Sep 23 jQuery
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 jQuery
基于jquery实现左右上下移动效果
May 02 jQuery
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
jQuery实现常见的隐藏与展示列表效果示例
Jun 04 jQuery
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 jQuery
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
javascript/jquery实现点击触发事件的方法分析
Nov 11 jQuery
如何使用jQuery操作Cookies方法解析
Sep 08 jQuery
jQuery实现放大镜案例
Oct 19 jQuery
jQuery选择器特殊字符与属性空格问题
Aug 14 #jQuery
jQuery实现手势解锁密码特效
Aug 14 #jQuery
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 #jQuery
jQuery:unbind方法的使用详解
Aug 14 #jQuery
jQuery 实时保存页面动态添加的数据的示例
Aug 14 #jQuery
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 #jQuery
jquery.uploadView 实现图片预览上传功能
Aug 10 #jQuery
You might like
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
php列出一个目录下的所有文件的代码
2012/10/09 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
thinkphp模板用法和内容输出实例
2014/11/28 PHP
Laravel 5框架学习之用户认证
2015/04/09 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
学习js所必须要知道的一些
2007/03/07 Javascript
js 判断checkbox是否选中的实现代码
2010/11/23 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
Javascript实现动态菜单添加的实例代码
2013/07/05 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
使用rollup打包JS的方法步骤
2018/12/05 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
使用Turtle画正螺旋线的方法
2017/09/22 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
在C#中如何实现多态
2014/07/02 面试题
小区门卫岗位职责
2013/12/31 职场文书
护士找工作求职信
2014/07/02 职场文书
小学领导班子对照材料
2014/08/23 职场文书
领导班子四风对照检查材料
2014/09/23 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
公共场所卫生管理制度
2015/08/05 职场文书
大学副班长竞选稿
2015/11/21 职场文书
文书工作总结(范文)
2019/07/11 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书