bingxingke 2015-11-11
即时对象初始化方法
(function(){ //code here }).init() 常见错误 1.在对象每个方法内部,提前保存this指针,一遍下面引用,不然进入setinterval 内部指针变化,this指示错误。 2.当点击一个按钮发请求时?? 3.jquery当取到一个元素为空时 返回a= [] 判断为空,要使用a.length===0 不能使用!!a
var test=({ initTop:'300px', pageHeight:1033+8, el:'[id^=pageNo]', init:function(){ var c=this; $('body').animate({scrollTop:c.initTop},1000,function(){ setTimeout(function(){c.scrolPage();},4000) var ele=$('.fc2e'); if(ele.length>0){ ele.eq(0).click(); console.log('wait'); } }); return c; }, getContent:function(){//取内容 var p=this.getPara(); var str=''; if(p.length!=0){ for(var i=0;i<p.length;i++){ str+=p.eq(i).html().replace(/ /g,''); } }else{ clearInterval(this.timer); $('body').animate({scrollTop:0},3000) setTimeout(function(){alert('已复制至剪切板')},4000) return '' } return str; }, getPara:(function(){//获取对应页上的p元素,闭包存i var i=1; var c=this; return function(){ var idname='#'+'pageNo-'+i++; console.log(idname) var page=$(idname)||null; if(page.length==0) { clearInterval(this.timer); $('body').animate({scrollTop:0},3000) setTimeout(function(){alert('已复制至剪切板')},4000) return '' } return p=page?$(idname).find('p'):null; }})(), scrolPage:function(){ var c=this; var timer=null; c.result=''; var num=1; var dirtah=c.pageHeight; $('body').animate({scrollTop:c.initTop},100) this.timer=setInterval(function(){ if(num){ dirtah=0; num=0; }else{ dirtah=c.pageHeight } $('body').animate({scrollTop:'+='+dirtah+'px'},1000,function(){ c.result+=c.getContent(); copy(c.result); }); },1500) } }).init()