读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 建设银行登陆键盘
Jun 10 Javascript
jquery中ajax学习笔记3
Oct 16 Javascript
json格式的时间显示为正常年月日的方法
Sep 08 Javascript
Vue响应式添加、修改数组和对象的值
Mar 20 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
Jun 26 Javascript
JS实现图片放大镜插件详解
Nov 06 Javascript
jquery的 filter()方法使用教程
Mar 22 jQuery
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
May 29 Javascript
自己动手封装一个React Native多级联动
Sep 19 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
Jul 23 Javascript
详解小程序如何改变onLoad的执行时机
Nov 01 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
May 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中curl和file_get_content的区别
2014/05/10 PHP
PHP微信公众号开发之微信红包实现方法分析
2017/07/14 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
在pycharm中显示python画的图方法
2019/08/31 Python
python通过实例讲解反射机制
2019/10/17 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
学习雷锋演讲稿
2014/05/10 职场文书
大学生党员学习焦裕禄精神思想汇报
2014/09/10 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
大学生党员个人总结
2015/02/13 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python