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

来源:4-2 [DOM事件] QQ面板拖拽效果(下)

风到这里就是粘

2017-08-09 11:21

// 拖曳

   oTitle.onmousedown=fnDown;

  // 移动

  document.onmousemove=function(event){

  event = event || window.event;

  fnMove(event,disX,disY);

  }

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

写回答 关注

1回答

  • JE_lee
    2017-08-10 20:42:52

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

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

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99544 学习 · 1197 问题

查看课程

相似问题