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