读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客户端脚本的设计和应用
Aug 21 Javascript
Packer 3.0 JS压缩及混淆工具 下载
May 03 Javascript
JavaScript中清空数组的三种方法分享
Apr 07 Javascript
jquery自定义函数的多种方法
Jan 09 Javascript
jQuery带时间的日期控件代码分享
Aug 26 Javascript
JavaScript类型系统之基本数据类型与包装类型
Jan 06 Javascript
JS实现的四级密码强度检测功能示例
May 11 Javascript
Vue.js实现一个todo-list的上移下移删除功能
Jun 26 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
Sep 21 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
Mar 16 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
Mar 19 Javascript
vue实现自定义H5视频播放器的方法步骤
Jul 01 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
php 分页原理详解
2009/08/21 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
php 删除cookie方法详解
2014/12/01 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
jquery 获取json数据实现代码
2009/04/27 Javascript
JavaScript isArray()函数判断对象类型的种种方法
2010/10/11 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
Keras设置以及获取权重的实现
2020/06/19 Python
自考生毕业自我鉴定
2013/10/10 职场文书
视光学专业毕业生推荐信
2013/10/28 职场文书
教师远程培训感言
2014/03/06 职场文书
优秀语文教师事迹
2014/05/18 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
开票证明
2015/06/23 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书
关于mysql中string和number的转换问题
2022/06/14 MySQL