读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 相关文章推荐
基于jquery可配置循环左右滚动例子
Sep 09 Javascript
jQuery右键菜单contextMenu使用实例
Sep 28 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
Oct 12 Javascript
JavaScript的arguments对象应用示例
Sep 15 Javascript
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
JS中setTimeout的巧妙用法前端函数节流
Mar 24 Javascript
Three.js实现浏览器变动时进行自适应的方法
Sep 26 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
Nov 02 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
Jul 25 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
Oct 22 Javascript
关于微信小程序登录的那些事
Jan 08 Javascript
vue自定义组件实现双向绑定
Jan 13 Vue.js
读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 什么是PEAR?
2009/03/19 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
Angular排序实例详解
2017/06/28 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
Python如何绘制日历图和热力图
2020/08/07 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
2020/10/31 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
汽车检测与维修个人求职信
2013/09/24 职场文书
小学生班会演讲稿
2014/01/09 职场文书
骨干教师培训方案
2014/05/06 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
导师工作推荐信
2015/03/27 职场文书
党内外群众意见范文
2015/06/02 职场文书
python实战之用emoji表情生成文字
2021/05/08 Python
Nginx缓存设置案例详解
2021/09/15 Servers
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers
python实现双链表
2022/05/25 Python