您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

读jQuery之九 一些瑕疵说明_jquery

2025/10/14 15:14:24发布13次查看
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。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product