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 Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
jQuery Easyui Treegrid实现显示checkbox功能
Aug 08 jQuery
jQuery实现右侧抽屉式在线客服功能
Dec 25 jQuery
jquery动态添加带有样式的HTML标签元素方法
Feb 24 jQuery
jQuery 改变P标签文本值方法
Feb 24 jQuery
轻松搞定jQuery+JSONP跨域请求的解决方案
Mar 06 jQuery
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 jQuery
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
jQuery事件委托代码实践详解
Jun 21 jQuery
jQuery - AJAX load() 实例用法详解
Aug 27 jQuery
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
jQuery实现动态向上滚动
Dec 21 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
php通过session防url攻击方法
2014/12/10 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
php创建图像具体步骤
2017/03/13 PHP
PHP实现浏览器中直接输出图片的方法示例
2018/03/14 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
JavaScript中this详解
2015/09/01 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
原生js代码能实现call和bind吗
2019/07/31 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
Vue使用CDN引用项目组件,减少项目体积的步骤
2020/10/30 Javascript
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
Python实用日期时间处理方法汇总
2015/05/09 Python
Python爬虫实现百度图片自动下载
2018/02/04 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
three.js模拟实现太阳系行星体系功能
2019/09/03 HTML / CSS
美国时尚女装在线:Missguided
2016/12/03 全球购物
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
职业生涯规划书基本格式
2014/01/06 职场文书
招聘与培训专员岗位职责
2014/01/30 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
大学班干部竞选稿
2015/11/20 职场文书