摘要:
范例:function C (){ this.a = 1; return { b : 2 }; } var c = new C(); alert(c.a); //undefined当构造函数使用return返回对象时,使用new操作符产生的对象并不是一个包含属性a的对象,而是return回来的对象。这种情况只发生在构造函数返回对象时,如果使用reuturn返回的是其它非对象类型的值,将会正常返回包含属性a的对象。 阅读全文
摘要:
1、回归历史源代码会诱使程序员重新产生更多的障碍集群。逻辑性差的冗余句法令人无法理解!然而,如果它没有中断,请不要去修复。2、如果使用过多的if else,那这段代码一定是不合逻辑的。3、接到项目直接开始写代码容易走入误区,写之前多思考,多调研反而会节省时间4、stackoverflow是个不错的寻求问题答案的地方。5、陷入僵局时,离开电脑、离开项目休息半小时 阅读全文
摘要:
1、stop([stopAll], [gotoEnd])方法有两个参数(当然可以不传或直传一个),其中stopAll的意思是清除之后的所有动画。gotoEnd的意思是,执行完当前动画。2、stopAll == true时,停止队列中的所有动画, stopAll ==false时,只停止队列中的当前动画,后续动画继续执行。3、gotoEnd == true时,立即跳到当前动画的末尾, gotoEnd ==false时,停在当前状态。且gotoEnd只有在设置了stopAll的时候才起作用4、在项目中,如果不进行动画队列清理,就会产生动画积累的问题。因此在写入动画时,最好先清除队列中的重复动画。 阅读全文
摘要:
1、$.queue或$("elem").queue()是往队列里面添加可执行方法的方法,这个队列在jQuery中默认我fx。2、可以使用queue方法设置队列名称$("cl", arr),其中cl为队列名称,arr为放入这个队列的可执行方法的数组。3、当想要执行这个队列中的方法时,使用$("elem").dequeue(),此时会执行队列中的第一个方法。4、当想要清空队列时,可以使用$("elem").queue("cl", [])。 阅读全文
摘要:
1、设置display为none的元素,它的背景图依然会被下载。所以最好是等到该元素需要显示时才给他加上相应的有背景图的class。2、css中虽然ID选择器的优先级比较高,效率也比较高,但灵活性差,由于权重太高,导致私有化。相比而言,class的复用性高。3、书写css时,尽量不要为了提高优先级而在class前面加标签,这与使用jQuery选择器时想反。4、class起名时,尽量将模块名作为前缀,防止命名冲突。5、缓存对象的多级查询,否则每次查询性能较差。6、动画队列的问题。使用stop(true,true)不好,应该再源头上清除动画,使用queue的方法,该方法需要深入了解下。 阅读全文
摘要:
1、该方法在jQuery1.5开始被引入。2、用法测试 a、var url1 = "/resource/ar/hometab/index_tab_games.json", url2 = "/resource/ar/hometab/index_tab_image.json", ajax1 = $.ajax( { url : url1 } ), ajax2 = $.ajax( { url : url2 } ); $.when(ajax1, ajax2).done(function(){ ... 阅读全文
摘要:
对于jQuery的lazyload插件,一直是我比较想了解的部分。下面是看别人的文章的笔记:1、如何使用 做一个1*1像素的占位图片 将图片src指向占位图片 图片原地址放入data-original属性 为图片设置width、height属性 为需要lazyload的所有图片加上相同的class便于选择 $(".lazy").lazyload();2、如果需要处理没有js的浏览器(需要处理吗?) 3、不可见图片预加载 $("img.lazy").lazyload({ threshold :200}); 阅读全文
摘要:
function Person( name, age ){ this.name = name; this.age = age; this.sleep = function(){ alert( this.name + "is sleepping....zzzz"); } } function worker( name, age, company, job ){ Person.apply( this, arguments); this.company = company; this.job = job; ... 阅读全文
摘要:
当为窗口绑定resize事件时,大部分浏览器会在每改变一个像素就触发一次resize事件。这严重影响了网站的性能。解决方案是:利用settimeout方法为事件发触发的方法设置延迟执行的时间。实现: function lazyScroll( method, context, delay ){ clearTimeout( method.tId ); method.tId = setTimeout( function(){ method.call( context ); },delay ); } function doSomething(){alert(1);} ... 阅读全文
摘要:
这两天做了一个跟cookie打交道比较多的项目,把其中重新认识的点记录下来:1、$.cookie(name, value, time),当time为0时,相当于本句没有执行,并不会将原本记录在用户浏览器中的同域、同名cookie清除。2、如果想要不定时的清除用户浏览器中固定域下固定名称的cookie,可以单独设置一个符号,当PM设置这个符号时,程序就执行cookie的重置工作,但不会影响正常逻 辑的执行。(好像还是不行。。。。)3、$.cookie(name, value, time),当value设置为数字时,cookie中会自动转化为字符串。因此下次取出cookie时,不是数字而是字符串. 阅读全文