读jQuery之九 一些瑕疵说明

 更新时间:2011年06月21日 01:03:03   作者:  
jQuery1.6.1 发布有一段时间了,发现一些冗余代码,列出如下
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。

相关文章

  • Bookmarklet实现启动jQuery(模仿 云输入法)

    Bookmarklet实现启动jQuery(模仿 云输入法)

    最近流行的 sogo云输入法, QQ云输入法,都用到了bookmarklet技术。
    2010-09-09
  • jQuery EasyUI开发技巧总结

    jQuery EasyUI开发技巧总结

    这篇文章主要介绍了jQuery EasyUI开发技巧总结的相关资料,希望通过本文大家能够掌握EasyUI的开发技巧,需要的朋友可以参考下
    2017-09-09
  • 初试jQuery EasyUI 使用介绍

    初试jQuery EasyUI 使用介绍

    想必关注jQuery的同学们对jQuery EasyUI已经有所耳闻了,目前已经更新到1.0.5版本,风格与EXTJS有点相似,可以很好的满足开发人员对UI的需求。
    2010-04-04
  • jquery实现邮箱自动补全功能示例分享

    jquery实现邮箱自动补全功能示例分享

    这篇文章主要介绍了jquery实现邮箱自动补全功能,大家参考使用吧
    2014-02-02
  • JQuery和html+css实现带小圆点和左右按钮的轮播图实例

    JQuery和html+css实现带小圆点和左右按钮的轮播图实例

    下面小编就为大家带来一篇JQuery和html+css实现带小圆点和左右按钮的轮播图实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • jQuery 3.0十大新特性最终版发布

    jQuery 3.0十大新特性最终版发布

    jQuery 3.0在日前发布了最终的全新版本。这篇文章主要介绍了jQuery 3.0十大新特性最终版发布的相关资料,需要的朋友可以参考下
    2016-07-07
  • jQuery操作css方法的超全用法

    jQuery操作css方法的超全用法

    最近看了下jQuery的源代码,其中关于CSS及className的操作思想确实很不错,值得借鉴,下面这篇文章主要给大家介绍了关于jQuery操作css方法的超全用法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • jQuery 判断是否包含在数组中Array[]的方法

    jQuery 判断是否包含在数组中Array[]的方法

    下面小编就为大家带来一篇jQuery 判断是否包含在数组中Array[]的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 深入理解jquery的$.extend()、$.fn和$.fn.extend()

    深入理解jquery的$.extend()、$.fn和$.fn.extend()

    下面小编就为大家带来一篇深入理解jquery的$.extend()、$.fn和$.fn.extend()。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • jQuery操作表格(table)的常用方法、技巧汇总

    jQuery操作表格(table)的常用方法、技巧汇总

    虽然现在DIV+CSS进行页的布局大行其道,但是很多地方使用table还是有很多优势,用table展示数据是比较方便的,下面汇总了jQuery操作Table tr td常用的方法,熟记这些操作技巧,下次再使用的到时候,会让你如鱼得水,提高开发效率
    2014-04-04

最新评论