jquery升级之坑
2017-04-16 23:11
85 查看
js从1.7.2升级到1.11.3
live函数被弃用了,在新版本中建议用on,他们接口如下:
$(selector).live('click', function(){/* some code */});
$(selector).on('click', [selector,] function(){/* some code */});
初看之下,中括号里的参数是可以省略掉的,两函数不是一模一样了么,于是天真的使用了全局替换,这个好简单的,结果一测试,有些地方可以,有些地方不生效,于是仔细看了下两者的区别,发现如果元素是一开始页面就有的,就能生效;如果是后台动态添加的就不生效,事实上,live是将$(selector)代理到了document元素上,这个元素是始终存在的,正确的替换方式如下:
$(document).on('click', selector, function(){/* some code */});
die被off替代了
使用了被废弃的jQuery.brower属性
在前端开发中我们常需要根据浏览器不同版本做不同的处理,jQuery.brower本来是通过浏览器的userAgent字段来提取浏览器相关信息。新版本中已经将其废弃,而是建议使用特征检测的方法去判断,并且给了一个Modernizr库为推荐,不过如果改成这样的成本有点大,可以考虑自己去实现,如下:
$(html)对格式有严格的要求,以下几种写法都是错误的:
(1). $(" <div></div>"); //错误,字符串最开头有一个空格,不是以小于号'<'开头的
(2). $("<div></div>world"); //不标准,html标签结束后后面还有多余的"test",它会被忽略
(3). $("#<div></div>); //错误,以井号开头并且后面并不是一个css选择器
5. attr函数:自定义属性使用attr,标签自由value属性使用val
6. 表单的选中和不选中状态谁用prop函数
$('input').prop('checked',true);//设置选中
$('input').prop('checked',false);//设置不选中
$('input').prop('checked');//返回true或者false
live函数被弃用了,在新版本中建议用on,他们接口如下:
$(selector).live('click', function(){/* some code */});
$(selector).on('click', [selector,] function(){/* some code */});
初看之下,中括号里的参数是可以省略掉的,两函数不是一模一样了么,于是天真的使用了全局替换,这个好简单的,结果一测试,有些地方可以,有些地方不生效,于是仔细看了下两者的区别,发现如果元素是一开始页面就有的,就能生效;如果是后台动态添加的就不生效,事实上,live是将$(selector)代理到了document元素上,这个元素是始终存在的,正确的替换方式如下:
$(document).on('click', selector, function(){/* some code */});
die被off替代了
使用了被废弃的jQuery.brower属性
在前端开发中我们常需要根据浏览器不同版本做不同的处理,jQuery.brower本来是通过浏览器的userAgent字段来提取浏览器相关信息。新版本中已经将其废弃,而是建议使用特征检测的方法去判断,并且给了一个Modernizr库为推荐,不过如果改成这样的成本有点大,可以考虑自己去实现,如下:
jQuery.browser={};(function(){jQuery.browser.msie=false; jQuery.browser.version=0;if(navigator.userAgent.match(/MSIE ([0-9]+)./)){ jQuery.browser.msie=true;jQuery.browser.version=RegExp.$1;}})();
$(html)对格式有严格的要求,以下几种写法都是错误的:
(1). $(" <div></div>"); //错误,字符串最开头有一个空格,不是以小于号'<'开头的
(2). $("<div></div>world"); //不标准,html标签结束后后面还有多余的"test",它会被忽略
(3). $("#<div></div>); //错误,以井号开头并且后面并不是一个css选择器
5. attr函数:自定义属性使用attr,标签自由value属性使用val
6. 表单的选中和不选中状态谁用prop函数
$('input').prop('checked',true);//设置选中
$('input').prop('checked',false);//设置不选中
$('input').prop('checked');//返回true或者false
相关文章推荐
- jQuery版本升级踩坑大全
- jQuery1.9+ 废弃的函数和方法 升级Jquery版本遇到的问题
- jquery由1.3升级到1.4时注意项:json格式
- jQuery1.9+ 废弃的函数和方法 升级Jquery版本遇到的问题
- jquery 升级到1.4后 jqDrag 拖动 不可用
- jQuery1.9升级和删除的API指南
- formValidator表单验证升级jQuery的小问题
- 从jQuery版本升级注意事项(主要是从1.1升级到1.2之后)
- 检测浏览器版本并升级jQuery插件
- jquery升级换代
- jQuery Core 3.0升级指南
- jQuery版本升级踩坑大全
- 解决 jQuery 版本升级过程中出现 toLowerCase 错误 --更改 doctype
- 关于 JQuery 升级的问题
- jQuery版本升级踩坑大全
- jquery版本号升级不兼容的问题:$("input").attr("value")功能发生改变
- JQuery升级到2.x版本后,支持低版本的兼容插件jquery-migrate
- jQuery升级踩坑大全
- jQuery1.9+ 废弃的函数和方法 升级Jquery版本遇到的问题
- jquery从1.3.2升级到1.11.1后,$.ajax提交数组的设置