»js undefined 和 undeclared
在stackoverflow上看到如下一个问题 如果window上的a属性没有定义,如下代码不会引发异常 if(window.a){ //somecode }如果a变量没有定义,如下代码会引发异常 if(a){ //somecode } 这是为什么呢? 后面高手回答:(T?r?kGábor) if(window.a)是访问了window对象上一个未定义的属性a。if(a)则是访问了一个未定义的变量...
»(十三)jQuery的Ajax功能扩展代码
看了一边Ajax功能模块代码的实现,最后倒叙查看代码。 最后面httpData和param两个函数的实现比较简单。 //GetthedataoutofanXMLHttpRequest.//ReturnparsedXMLifcontent-typeheaderis"xml"andtypeis"xml"oromitted,//otherwisereturnplaintext.httpData:func...
»(十二)jQuery内置特效的实现
jQuery内置特效的实现用了两段extend代码。 第一段jQuery.fn.extend扩展了jQuery.fn上的常见特效方法。其中重要的animate方法。 第二段jQuery.extend定义了重要的fx方法、speed方法。支持animate的实现。 第一段jQuery.fn.extend jQuery.fn.extend({ //overwritetheoldshowmethod_s...
»(十一)jQuery.extend代码段
在jQuery.init();代码之后有一段jQuery.extend代码。这一段属于对jQuery基本功能的扩展。代码如下: jQuery.init();jQuery.fn.extend({ //We'reoverridingtheoldtogglefunction,so//rememberitforlater_toggle:jQuery.fn.toggle, toggle:function(a...
»(十)jQuery.extend代码段
查看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代码段
再次返回看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代码段
分析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代码段
就过之前对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代码段
现在就基本上可以把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 代码段
继续分析event中剩余的remove、trigger方法,并附带完全理解handle方法。 //Detachaneventorsetofeventsfromanelementremove:function(element,type,handler){ if(element.events) if(type&&element.events[type]) if(handler) del...
»(四)第一个jQuery.extend代码段
第一个jQuery.Extend代码中的init实现较为复杂,尝试分析init引用的函数并进行阅读。代码量有点大,于是点击所有的jQuery.Extend代码查看,发现在第二个newfunction之上的jQuery.Extend拓展了jQuery的ready方法,该代码段的实现比较简明易读。此段代码是jQuery.extend({..}),extend只有一个参数且为对象时,对象上的属性被拓展到...
»(三)三段new function的分析
现在我知道newfunction(){}能够干嘛了。接下来看一下代码中的三个newfunction(){...}都做了神马? 1.第一个,判断浏览器型号和浏览器使用的CSS盒子模型是W3C盒子模型还是IE的Quirks模式 newfunction(){ varb=navigator.userAgent.toLowerCase(); //Figureoutwhatbrowserisbeingused...
»(二)解决前6条
1.window.undefined=window.undefined maketheglobalwindow.undefinedasrealundefinedvalue. 未定义,当属性没有定义过(不存在)时访问该属性则会返回值:未定义。虽然window.undefined一定会被浏览器定义成了"未定义"的值,但是谁会知道哪个别有用心的浏览器(火狐)是个例外呢。所以,这一段代码做了双重保证。定义...
»(一)划分JQuery的代码结构
将JQuery1.0的全部代码,以第一层为准收起。代码总行数减少,可以对代码大体结构进行梳理和了解。 此时代码行数为19行,浏览第一遍后可以看到几个令人好奇的地方和一些简单的外层代码。列举如下: 令人好奇的代码: window.undefined=window.undefined为什么要这么写? newfunction(){}这种不是自执行函数((即function(args){...code....
»maccms 安装时提示call to undefined function stepB
maccms苹果CMS,是一个在线影视的PHP程序。默认皮肤挺好看的。但是在JB安装过程中竟然发生了calltoundefinedfunctionstepB。话又说回来,这是为什么呢?好在php+apache的提示信息给出的够详细。于是打开install/index.php查看代码。慨叹程序员真是有责任心啊,所有代码都在方便查看。于是找到了stepB函数以及switch跳转语句。结果发现stepB...
方向之于生命