读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 入门级学习笔记及源码
Jan 22 Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
Apr 27 Javascript
Node.js事件循环(Event Loop)和线程池详解
Jan 28 Javascript
JavaScript取得键盘按下方向键是哪个的方法
Aug 04 Javascript
js游戏人物上下左右跑步效果代码分享
Aug 28 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 Javascript
js事件冒泡与事件捕获详解
Feb 20 Javascript
JavaScript使用readAsDataURL读取图像文件
May 10 Javascript
3种vue组件的书写形式
Nov 29 Javascript
js实现搜索栏效果
Nov 16 Javascript
Vue实现数据请求拦截
Oct 23 Javascript
Vue多选列表组件深入详解
Mar 02 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
实用函数7
2007/11/08 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
2015/04/26 PHP
分享3个php获取日历的函数
2015/09/25 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
javascript实现禁止右键和F12查看源代码
2014/12/26 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
2018/05/31 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
Ubuntu下安装PyV8
2016/03/13 Python
使用Python绘制图表大全总结
2017/02/11 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
python监控文件并且发送告警邮件
2018/06/21 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
如何使用Python多线程测试并发漏洞
2019/12/18 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
Square Off美国/加拿大:世界上最聪明的国际象棋棋盘
2018/12/06 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
竞选大队委员演讲稿
2014/04/28 职场文书
刑事代理授权委托书
2014/09/17 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
工作收入住址证明
2014/10/28 职场文书
对学校的意见和建议
2015/06/04 职场文书
小学四年级作文之写景
2019/08/23 职场文书