想問(wèn)一下大神,拖拽時(shí)直接把fnDown直接賦給鼠標(biāo)按下的事件,移動(dòng)時(shí),在fnDown里為什么不可以直接將document.onmousemove=fnMove(event,disX,disY);為什么不行?
// 拖曳
? ?oTitle.onmousedown=fnDown;
? // 移動(dòng)
? document.onmousemove=function(event){
? event = event || window.event;
? fnMove(event,disX,disY);
? }
想問(wèn)一下大神,拖拽時(shí)直接把fnDown直接賦給鼠標(biāo)按下的事件,移動(dòng)時(shí),在fnDown里為什么不可以直接將document.onmousemove=fnMove(event,disX,disY);為什么不行?
2017-08-10
嗯,我覺(jué)得你應(yīng)該先弄明白什么是回調(diào)函數(shù),element.onclick事件觸發(fā)的時(shí)候,他的回調(diào)函數(shù)是這種形式的function(event){};雖然JS沒(méi)有限定參數(shù)的長(zhǎng)度,也就是說(shuō),這個(gè)回調(diào)函數(shù)的形式也是這樣的function(event,undefined,undefined........){};所以上面這樣子改的話,控制臺(tái)就會(huì)提示你disX沒(méi)有定義,從而停止這個(gè)函數(shù)的執(zhí)行,也就移動(dòng)不了了。
回調(diào)函數(shù)是傳遞參數(shù)是沒(méi)有意義的。所以這時(shí)候disX,disY沒(méi)什么用。