读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 相关文章推荐
JS动态添加option和删除option(附实例代码)
Apr 01 Javascript
jQuery源码解读之removeAttr()方法分析
Feb 20 Javascript
JavaScript实现数字数组按照倒序排列的方法
Apr 06 Javascript
jQuery事件绑定与解除绑定实现方法
Apr 15 Javascript
JS文字球状放大效果代码分享
Aug 19 Javascript
EasyUI学习之Combobox级联下拉列表(2)
Dec 29 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
Apr 13 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
Aug 24 Javascript
JS中的算法与数据结构之集合(Set)实例详解
Aug 20 Javascript
Element ui 下拉多选时新增一个选择所有的选项
Aug 21 Javascript
jQuery实现鼠标拖拽登录框移动效果
Sep 13 jQuery
JavaScript如何操作css
Oct 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
Protoss兵种对照表
2020/03/14 星际争霸
php中的异常和错误浅析
2017/05/03 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
php探针不显示内存解决方法
2019/09/17 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
js 动态选中下拉框
2009/11/26 Javascript
浅析js封装和作用域
2013/07/09 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
Mac 上切换Python多版本
2017/06/17 Python
python字符串常用方法
2018/06/14 Python
django 模型字段设置默认值代码
2020/07/15 Python
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
教师年度考核自我鉴定
2014/01/19 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
跟单业务员岗位职责
2014/03/08 职场文书
先进员工事迹材料
2014/12/20 职场文书
财务统计员岗位职责
2015/04/14 职场文书
2015年财政所工作总结
2015/04/25 职场文书
2015年共青团工作总结
2015/05/15 职场文书
教师培训学习心得体会
2016/01/21 职场文书
Python实现排序方法常见的四种
2021/07/15 Python
python识别围棋定位棋盘位置
2021/07/26 Python
html中两种获取标签内的值的方法
2022/06/16 jQuery