读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 相关文章推荐
关于this和self的使用说明
Aug 01 Javascript
Jquery判断IE6等浏览器的代码
Apr 05 Javascript
用JavaScript实现对话框的教程
Jun 04 Javascript
JavaScript访问字符串中单个字符的两种方法
Jul 03 Javascript
jQuery获取多种input值的简单实现方法
Jun 20 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
Aug 09 jQuery
前端常见跨域解决方案(全)
Sep 19 Javascript
javascript按顺序加载运行js方法
Dec 01 Javascript
10个最受欢迎的 JavaScript框架(推荐)
Apr 24 Javascript
js获取 gif 的帧数的代码实例
Sep 10 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
Oct 26 Javascript
JS通用方法触发点击事件代码实例
Feb 17 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
模仿OSO的论坛(四)
2006/10/09 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
php实现的日历程序
2015/06/18 PHP
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
详解EventDispatcher事件分发组件
2016/12/25 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
JavaScript 乱码问题
2009/08/06 Javascript
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
jQuery在vs2008及js文件中的无智能提示的解决方法
2010/12/30 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
2014/07/21 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
javascript遍历json对象的key和任意js对象属性实例
2017/03/09 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
layui中table表头样式修改方法
2018/08/15 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
2015年元旦促销方案书
2014/12/09 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL
24年收藏2000多部退役军用电台
2022/02/18 无线电