读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 相关文章推荐
node.js中的buffer.copy方法使用说明
Dec 14 Javascript
ECMAScript6新增值比较函数Object.is
Jun 12 Javascript
每天一篇javascript学习小结(Array数组)
Nov 11 Javascript
功能强大的Bootstrap组件(结合js)
Aug 03 Javascript
AngularJS2中一种button切换效果的实现方法(二)
Mar 27 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
Aug 16 Javascript
jQuery实现表格冻结顶栏效果
Aug 20 jQuery
原生js封装的ajax方法示例
Aug 02 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
在vue中更换字体,本地存储字体非引用在线字体库的方法
Sep 28 Javascript
vue双向绑定数据限制长度的方法
Nov 04 Javascript
vue中的v-model原理,与组件自定义v-model详解
Aug 04 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
Windows下的PHP5.0详解
2006/11/18 PHP
php无限极分类实现的两种解决方法
2013/04/28 PHP
php设计模式之命令模式的应用详解
2013/05/21 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
2013/10/24 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
Python补齐字符串长度的实例
2018/11/15 Python
django表单的Widgets使用详解
2019/07/22 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
委托证明的格式
2014/01/10 职场文书
大学同学聚会邀请函
2014/01/19 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
小学生安全演讲稿
2014/04/25 职场文书
离职保密承诺书
2014/05/28 职场文书
合作意向书
2014/07/30 职场文书
庐山导游词
2015/02/03 职场文书
运动会800米赞词
2015/07/22 职场文书
竞聘书的秘诀
2019/04/02 职场文书
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python