klvoek

klvoek

归档历史:2012年2月的文章档案

»js undefined 和 undeclared

Posted by klvoek @ 2012-2-12 16:47:10 阅读(143) 评论(2)

在stackoverflow上看到如下一个问题 如果window上的a属性没有定义,如下代码不会引发异常 if(window.a){ //somecode }如果a变量没有定义,如下代码会引发异常 if(a){ //somecode } 这是为什么呢? 后面高手回答:(T?r?kGábor) if(window.a)是访问了window对象上一个未定义的属性a。if(a)则是访问了一个未定义的变量...

»(十三)jQuery的Ajax功能扩展代码

Posted by klvoek @ 2012-2-12 16:18:47 阅读(98) 评论(0)

看了一边Ajax功能模块代码的实现,最后倒叙查看代码。 最后面httpData和param两个函数的实现比较简单。 //GetthedataoutofanXMLHttpRequest.//ReturnparsedXMLifcontent-typeheaderis"xml"andtypeis"xml"oromitted,//otherwisereturnplaintext.httpData:func...

»(十二)jQuery内置特效的实现

Posted by klvoek @ 2012-2-12 16:14:58 阅读(90) 评论(0)

jQuery内置特效的实现用了两段extend代码。 第一段jQuery.fn.extend扩展了jQuery.fn上的常见特效方法。其中重要的animate方法。 第二段jQuery.extend定义了重要的fx方法、speed方法。支持animate的实现。 第一段jQuery.fn.extend jQuery.fn.extend({ //overwritetheoldshowmethod_s...

»(十一)jQuery.extend代码段

Posted by klvoek @ 2012-2-12 16:10:51 阅读(90) 评论(0)

在jQuery.init();代码之后有一段jQuery.extend代码。这一段属于对jQuery基本功能的扩展。代码如下: jQuery.init();jQuery.fn.extend({ //We'reoverridingtheoldtogglefunction,so//rememberitforlater_toggle:jQuery.fn.toggle, toggle:function(a...

»(十)jQuery.extend代码段

Posted by klvoek @ 2012-2-12 16:08:43 阅读(75) 评论(0)

查看jQuery.css实现代码发现css调用了curCss,而这个curCss调用了swap方法,swap方法没有调用其它方法。于是 swap:function(e,o,f){ for(variino){ e.style["old"+i]=e.style[i]; e.style[i]=o[i]; } f.apply(e,[]); for(variino) e.style[i]=e.style["...

»(九)jQuery.extend代码段

Posted by klvoek @ 2012-2-12 16:04:17 阅读(75) 评论(0)

再次返回看init的代码,我抽离出一个init的简明结构: init:function(){ jQuery.initDone=true; jQuery.each(jQuery.macros.axis,function(i,n){ jQuery.fn[i]=function(a){ ... }; }); jQuery.each(jQuery.macros.to,function(i,n){ jQ...

»(八)jQuery.extend代码段

Posted by klvoek @ 2012-2-12 15:28:38 阅读(80) 评论(0)

分析jQuery.find的实现代码,发现其调用了getAll、trim、sliding三个方法。 getAll:function(o,r){ r=r||[]; vars=o.childNodes; for(vari=0;i<s.length;i++) if(s[i].nodeType==1){ r.push(s[i]); jQuery.getAll(s[i],r); } returnr; ...

»(七)jQuery.extend代码段

Posted by klvoek @ 2012-2-12 15:15:49 阅读(81) 评论(0)

就过之前对grep、map、merge的准备,现在可以入手flter函数了: filter:function(t,r,not){ //Figureoutifwe'redoingregular,orinverse,filteringvarg=not!==false?jQuery.grep: function(a,f){returnjQuery.grep(a,f,true);}; while(t&a...

»(六)jQuery.extend代码段

Posted by klvoek @ 2012-2-12 15:07:37 阅读(82) 评论(0)

现在就基本上可以把each中所有的代码弄明白了。 each:{ removeAttr:function(key){ this.removeAttribute(key); }, show:function(){ this.style.display=this.oldblock?this.oldblock:""; if(jQuery.css(this,"display")=="none") this....

»(五)jQuery.extend 代码段

Posted by klvoek @ 2012-2-12 15:00:52 阅读(77) 评论(0)

继续分析event中剩余的remove、trigger方法,并附带完全理解handle方法。 //Detachaneventorsetofeventsfromanelementremove:function(element,type,handler){ if(element.events) if(type&&element.events[type]) if(handler) del...

»(四)第一个jQuery.extend代码段

Posted by klvoek @ 2012-2-12 14:56:44 阅读(113) 评论(0)

第一个jQuery.Extend代码中的init实现较为复杂,尝试分析init引用的函数并进行阅读。代码量有点大,于是点击所有的jQuery.Extend代码查看,发现在第二个newfunction之上的jQuery.Extend拓展了jQuery的ready方法,该代码段的实现比较简明易读。此段代码是jQuery.extend({..}),extend只有一个参数且为对象时,对象上的属性被拓展到...

»(三)三段new function的分析

Posted by klvoek @ 2012-2-12 14:47:10 阅读(108) 评论(0)

现在我知道newfunction(){}能够干嘛了。接下来看一下代码中的三个newfunction(){...}都做了神马? 1.第一个,判断浏览器型号和浏览器使用的CSS盒子模型是W3C盒子模型还是IE的Quirks模式 newfunction(){ varb=navigator.userAgent.toLowerCase(); //Figureoutwhatbrowserisbeingused...

»(二)解决前6条

Posted by klvoek @ 2012-2-12 14:37:43 阅读(75) 评论(0)

1.window.undefined=window.undefined maketheglobalwindow.undefinedasrealundefinedvalue. 未定义,当属性没有定义过(不存在)时访问该属性则会返回值:未定义。虽然window.undefined一定会被浏览器定义成了"未定义"的值,但是谁会知道哪个别有用心的浏览器(火狐)是个例外呢。所以,这一段代码做了双重保证。定义...

»(一)划分JQuery的代码结构

Posted by klvoek @ 2012-2-12 14:24:23 阅读(91) 评论(0)

将JQuery1.0的全部代码,以第一层为准收起。代码总行数减少,可以对代码大体结构进行梳理和了解。 此时代码行数为19行,浏览第一遍后可以看到几个令人好奇的地方和一些简单的外层代码。列举如下: 令人好奇的代码: window.undefined=window.undefined为什么要这么写? newfunction(){}这种不是自执行函数((即function(args){...code....

»maccms 安装时提示call to undefined function stepB

Posted by klvoek @ 2012-2-12 3:38:17 阅读(100) 评论(0)

maccms苹果CMS,是一个在线影视的PHP程序。默认皮肤挺好看的。但是在JB安装过程中竟然发生了calltoundefinedfunctionstepB。话又说回来,这是为什么呢?好在php+apache的提示信息给出的够详细。于是打开install/index.php查看代码。慨叹程序员真是有责任心啊,所有代码都在方便查看。于是找到了stepB函数以及switch跳转语句。结果发现stepB...

上一页12下一页