读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 面向对象编程(1) 基础
May 18 Javascript
让checkbox不选中即将选中的checkbox不选中
Jul 11 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
Jan 28 Javascript
JavaScript中的this,call,apply使用及区别详解
Jan 29 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
May 18 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 jQuery
JavaScript基础进阶之数组方法总结(推荐)
Sep 04 Javascript
使用命令行工具npm新创建一个vue项目的方法
Dec 27 Javascript
bootstrap中selectpicker下拉框使用方法实例
Mar 22 Javascript
详解vue-router 初始化时做了什么
Jun 11 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
Nov 13 Javascript
vue element-ui中table合计指定列求和实例
Nov 02 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/07/20 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
Python修改列表值问题解决方案
2020/03/06 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
瑞典领先的汽车零部件网上零售商:bildelaronline24.se
2017/01/12 全球购物
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
武汉英思工程科技有限公司–ORACLE面试测试题目
2012/04/30 面试题
教师求职推荐信范文
2013/11/20 职场文书
毕业实习评语
2014/02/10 职场文书
幼儿园元旦亲子活动方案
2014/02/17 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
同意落户证明
2015/06/19 职场文书
男方家长婚礼致辞
2015/07/27 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android