读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 相关文章推荐
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
Jul 14 Javascript
一个JQuery操作Table的代码分享
Mar 30 Javascript
js编码、解码函数介绍及其使用示例
Sep 05 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
Sep 12 Javascript
使用js dom和jquery分别实现简单增删改
Sep 11 Javascript
理解JavaScript事件对象
Jan 25 Javascript
基于javascript制作微博发布栏效果
Apr 04 Javascript
Node.js Addons翻译(C/C++扩展)
Jun 12 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
Sep 05 Javascript
React Native时间转换格式工具类分享
Oct 24 Javascript
vue 返回上一页,页面样式错乱的解决
Nov 14 Javascript
JavaScript实现多层颜色选项卡嵌套
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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
php _autoload自动加载类与机制分析
2012/02/10 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
jQuery 前的按键判断代码
2010/03/19 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
Node.js JSON模块用法实例分析
2019/01/04 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
vue+AI智能机器人回复功能实现
2020/07/16 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
python数据结构之列表和元组的详解
2017/09/23 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
Django中间件基础用法详解
2019/07/18 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
Python collections模块的使用方法
2020/10/09 Python
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
汽车工程专业应届生求职信
2013/10/19 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
运动会方阵口号
2014/06/07 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
避暑山庄导游词
2015/02/04 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
退休欢送会主持词
2015/07/01 职场文书
致运动员加油稿
2015/07/21 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python