发布于 2016-09-06 07:58:37 | 167 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的jQuery示例,程序狗速度看过来!

jQuery javascript框架

jQuery是一个兼容多浏览器的javascript框架,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发。


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。

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务