读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中xml操作实现代码
Nov 21 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
Feb 25 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
Mar 14 Javascript
AngularJS中的Directive自定义一个表格
Jan 25 Javascript
ES6中如何使用Set和WeakSet
Mar 10 Javascript
JavaScript生成带有缩进的表格代码
Jun 15 Javascript
three.js 入门案例详解
Jan 23 Javascript
jQuery事件blur()方法的使用实例讲解
Mar 30 jQuery
Android 自定义view仿微信相机单击拍照长按录视频按钮
Jul 19 Javascript
在Vue.js中使用TypeScript的方法
Mar 19 Javascript
javascript使用Blob对象实现的下载文件操作示例
Apr 18 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
Dec 24 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
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
PHP时间类完整实例(非常实用)
2015/12/25 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
2016/04/23 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
TensorFlow实现模型评估
2018/09/07 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
详解Python中的分支和循环结构
2020/02/11 Python
python编写实现抽奖器
2020/09/10 Python
pycharm 的Structure界面设置操作
2021/02/05 Python
会计应届生的自荐信
2013/12/13 职场文书
电脑教师的自我评价
2013/12/18 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
开展创先争优活动总结
2014/08/28 职场文书
竞选大学学委演讲稿
2014/09/13 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
先进典型发言材料
2014/12/30 职场文书
毕业生自荐信范文
2015/03/05 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
三十年同学聚会感言
2015/07/30 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang
Python学习之迭代器详解
2022/04/01 Python