读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 相关文章推荐
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
Nov 27 Javascript
jquery实现上下左右滑动的方法
Feb 09 Javascript
js面向对象之公有、私有、静态属性和方法详解
Apr 17 Javascript
jQuery解决浏览器兼容性问题案例分析
Apr 15 Javascript
JS中的进制转换以及作用
Jun 26 Javascript
微信小程序 SocketIO 实例讲解
Oct 13 Javascript
JS中的作用域链
Mar 01 Javascript
详解Angular4 路由设置相关
Aug 26 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
Mar 19 Javascript
mpvue跳转页面及注意事项
Aug 03 Javascript
代码整洁之道(重构)
Oct 25 Javascript
使用element-ui table expand展开行实现手风琴效果
Mar 15 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
点评山进PR-D3L三波段收音机
2021/03/02 无线电
php下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
PHP读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
2017/11/08 jQuery
swiper自定义分页器使用方法详解
2020/09/14 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
python链接Oracle数据库的方法
2015/06/28 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
机器学习10大经典算法详解
2017/12/07 Python
python 中字典嵌套列表的方法
2018/07/03 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
python如何使用代码运行助手
2020/07/03 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
小学生环保标语
2014/06/13 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
员工安全责任协议书
2016/03/22 职场文书