读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 相关文章推荐
mouse_on_title.js
Aug 25 Javascript
关于javascript function对象那些迷惑分析
Oct 24 Javascript
jQuery Tools tooltip使用说明
Jul 14 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
Dec 05 Javascript
JavaScript将一个数组插入到另一个数组的方法
Mar 19 Javascript
用JavaScript实现对话框的教程
Jun 04 Javascript
javascript实现加载xml文件的方法
Nov 24 Javascript
JS实现设置ff与ie元素绝对位置的方法
Mar 08 Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
Oct 24 Javascript
JavaScript在web自动化测试中的作用示例详解
Aug 25 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
Sep 21 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修改上传图片尺寸的方法
2015/04/14 PHP
JavaScript中的Location地址对象
2008/01/16 Javascript
常用的javascript function代码
2008/05/23 Javascript
jQuery 使用手册(七)
2009/09/23 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
jquery插件开发之实现md5插件
2014/03/17 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
英国高街品牌:Miss Selfridge(塞尔弗里奇小姐)
2016/09/21 全球购物
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
什么是唯一索引
2015/07/05 面试题
保安的辞职报告怎么写
2014/01/20 职场文书
会计师职业生涯规划范文
2014/02/18 职场文书
保险公司晨会主持词
2014/03/22 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
交通事故协议书范文
2014/04/16 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
舞蹈教育学专业求职信
2014/06/29 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
结婚司仪主持词
2015/06/29 职场文书
python基础入门之普通操作与函数(三)
2021/06/13 Python
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript
MySQL系列之十二 备份与恢复
2021/07/02 MySQL