读jQuery之九 一些瑕疵说明


Posted in Javascript onJune 21, 2011

1,bind 方法,最后一个参数fn是多余的

// Handle object literals 
if ( typeof type === "object" ) { 
for ( var key in type ) { 
this[ name ](key, data, type[key], fn); 
} 
return this; 
}

2,注释
// Add which for click: 1 === left; 2 === middle; 3 === right

应修改为
// Add which for mousedown/mouseup : 1 === left; 2 === middle; 3 === right

3,data方法,定义了局部变量internalKey,但后续代码仍然沿用jQuery.expando。
var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache,

4,jQuery.event.add方法,arguments改为e,apply改为call 更好一些。因为只会传一个参数:事件对象。
elemData.handle = eventHandle = function( e ) { 
// Discard the second event of a jQuery.event.trigger() and 
// when an event is called after a page has unloaded 
return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? 
jQuery.event.handle.apply( eventHandle.elem, arguments ) : 
undefined; };

5,基于 “勿重复检测浏览器” 原则,jQuery.event.add 以下代码
if ( elem.addEventListener ) { 
elem.addEventListener( type, eventHandle, false ); } else if ( elem.attachEvent ) { 
elem.attachEvent( "on" + type, eventHandle ); 
}

应该使用以下来替换
jQuery.addEvent = document.addEventListener ? 
function( elem, type, handle ) { 
if ( elem.addEventListener ) { 
elem.addEventListener( type, handle, false ); 
} 
} : 
function( elem, type, handle ) { 
if ( elem.attactEvent ) { 
elem.attactEvent( "on" + type, handle ); 
} 
};

事实上,jQuery中已经有了jQuery.removeEvent,却不知为何没有jQuery.addEvent。
Javascript 相关文章推荐
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
Jun 25 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
Jul 25 Javascript
jquery实现动态菜单的实例代码
Nov 28 Javascript
javascript事件模型实例分析
Jan 30 Javascript
关于验证码在IE中不刷新的快速解决方法
Sep 23 Javascript
实例解析jQuery工具函数
Dec 01 Javascript
vue template中slot-scope/scope的使用方法
Sep 06 Javascript
微信小程序实现列表页的点赞和取消点赞功能
Nov 02 Javascript
教你完全理解ReentrantLock重入锁
Jun 03 Javascript
怎么使用javascript深度拷贝一个数组
Jun 06 Javascript
微信小程序 弹窗输入组件的实现解析
Aug 12 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
Sep 12 Javascript
读jQuery之八 包装事件对象
Jun 21 #Javascript
读jQuery之七 判断点击了鼠标哪个键的代码
Jun 21 #Javascript
读jQuery之六 缓存数据功能介绍
Jun 21 #Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
Jun 20 #Javascript
读jQuery之五(取DOM元素)
Jun 20 #Javascript
读jQuery之四(优雅的迭代)
Jun 20 #Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
Jun 20 #Javascript
You might like
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
小程序getLocation需要在app.json中声明permission字段
2019/04/04 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
零基础写python爬虫之HTTP异常处理
2014/11/05 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
2016/10/11 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
python输出带颜色字体实例方法
2019/09/01 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
学校读书活动总结
2014/06/30 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL