为了账号安全,请及时绑定邮箱和手机立即绑定

想问一下大神,拖拽时直接把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);为什么不行?

正在回答

1 回答

嗯,我觉得你应该先弄明白什么是回调函数,element.onclick事件触发的时候,他的回调函数是这种形式的function(event){};虽然JS没有限定参数的长度,也就是说,这个回调函数的形式也是这样的function(event,undefined,undefined........){};所以上面这样子改的话,控制台就会提示你disX没有定义,从而停止这个函数的执行,也就移动不了了。

回调函数是传递参数是没有意义的。所以这时候disX,disY没什么用。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

想问一下大神,拖拽时直接把fnDown直接赋给鼠标按下的事件,移动时,在fnDown里为什么不可以直接将document.onmousemove=fnMove(event,disX,disY);为什么不行?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信