日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jscript > JavaScript學習之函數類與setInterval問題

JavaScript學習之函數類與setInterval問題

來源:程序員人生   發布時間:2014-06-08 02:10:16 閱讀次數:3510次

1. 之前寫的一直都是分散的函數,用到什么功能,就寫什么函數,覺得不夠整潔,所以這次寫的是封裝的類,用起來還不錯,但是傳遞參數的時候遇到了不少問題,所以,查閱了很多資料,總結如下:

1)動態綁定事件問題:

需要將onclick事件綁定到對象上,比如列表項。需要用到addEventListener或者attachEvent,用于吧函數操作添加到事件中去,而不是覆蓋,但是,attachEvent不支持FF,FF只能用addEventListener。so,就需要一個函數,把它們倆給綜合起來,于是乎,這個函數誕生了:

function addEventHandler(oTarget, sEventType, fnHandler)

{

if(oTarget.addEventListener)

{oTarget.addEventListener(sEventType, fnHandler, false);}

else if(oTarget.attachEvent)

{oTarget.attachEvent('on' + sEventType, fnHandler);}

else{oTarget['on' + sEventType] = fnHandler;}

}

2)傳遞this參數問題:

由于我吧函數和屬性都封裝到了一個類里面,所以在綁定onclick之類的事件是,就會產生一個問題,比如,addEventHandler(this.elems[i],"click",this.Move);,這樣就出錯了,因為在onclick事件發生的時候,調用的this就不是指向這個封裝的類了,于是乎,就需要用到apply()了~——應用某一對象的一個方法,用另一個對象替換當前對象。具體格式我就不用說了,網上一大堆~函數:

var Bind = function(object,func){

var args = Array.prototype.slice.call(arguments).slice(2);

return function(){

return func.apply(object,args);

}

}

調用:

this._fnMove=Bind(this,this.move,i);//this.move是我定義的一個成員函數,封裝在類中

//this.elems[i].onclick=this._fnMove;//吧上面那句話換成這句話也是可以的,只不過,onclick事件就被替換為this._fnMove,而不是添加this._fnMove進去

addEventHandler(this.elems[i],"click",this._fnMove);

這樣就OK了~

PS.call()也是基本相同的功能,但具體參數不一樣

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日本在线小视频 | 久久亚洲国产 | 日韩午夜在线电影 | 久久久www成人免费无遮挡大片 | 亚洲三级免费 | 国产精品美女在线观看 | 中文字幕日韩专区 | 爱爱小视频| 国产精品美女久久久 | 国内毛片毛片 | 日操| 久久国产精品一区二区三区 | 人人看人人模 | 日本激情视频 | 成人美女免费网站视频 | www久久综合 | 麻豆国产一区 | 最近的中文字幕在线看视频 | 国产精品久久久久久久久免费看 | 国产精品久久久久婷婷二区次 | 久久久久黄色 | 欧美夜夜| 国产精品99视频 | 久久成人高清 | 美日韩一区二区 | 精品久久久久久亚洲精品 | 成人第一区 | 久久99精品久久久久久按摩秒播 | 久久福利在线 | 国产做爰免费视频观看 | 国产日韩一区 | 高清国产一区 | 亚洲视频一区在线观看 | 久久午夜精品视频 | 日韩国产成人av | 久艹福利 | 亚洲精品久久久久中文字幕欢迎你 | 最近中文字幕第一页 | 日韩免费电影在线观看 | 色婷婷综合久久久久中文一区二 | 亚洲精品国产电影 |