javascript - Onclick 事件之后的 Mousemove 事件

标签 javascript html mouseevent

我有similar problem但我用的是纯js。根据我的理解,在我单击 div 后,每次我将光标移到 div 上时,它应该开始在控制台中打印“Mousemove 事件已发生”,但实际上当我单击 div 时,它只发生一次,这也很奇怪,因为单击是不是莫斯移动。您能帮我理解这种行为吗?

<div style="width:100px; height:100px; border:solid black 1px" onclick="handleClick(event)"></div>
  <script>
    let div = document.getElementsByTagName('div')[0];

    function handleClick(event){
      div.addEventListener('onmousemove', handleMove(event));
    }

    function handleMove(event){
      console.log('Mousemove event has occurred');
    }
  </script>
看起来它忽略了这部分 div.addEventListener('onmousemove', handleMove(event)); 并执行 handleMove(event); :

<div style="width:100px; height:100px; border:solid black 1px" onclick="handleClick(event)"></div>
  <script>
    let div = document.getElementsByTagName('div')[0];

    function handleClick(event){
      handleMove(event);
    }

    function handleMove(event){
      console.log('Mousemove event has occurred');
    }
</script>

更新:我想在没有 () 的情况下传递 handleMove 但被 Atom IDE 搞糊涂了(由于浅色突出显示),so do not let Atom confuse you!

最佳答案

Looks like it ignores this part div.addEventListener('onmousemove', handleMove(event)); and executes handleMove(event); instead:

是的,因为这是你写的;)

div.addEventListener('onmousemove', handleMove(event));

上面执行 handleMove 函数,并向其传递事件

将其与实际创建的事件处理程序进行比较(handleMove 后没有括号):

<div style="width:100px; height:100px; border:solid black 1px" onclick="handleClick(event)"></div>
<script>
    let div = document.getElementsByTagName('div')[0];

    function handleClick(event){
      console.log(`handleClick`);
      div.addEventListener('mousemove', handleMove);
    }

    function handleMove(event){
      console.log('Mousemove event has occurred');
    }
</script>

另外:该事件是 mousemove不是onmousemove .

关于javascript - Onclick 事件之后的 Mousemove 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49309046/

相关文章:

javascript - Ajax.updater 的参数

delphi - 以编程方式模拟用户输入的简单方法是什么?

windows - 如何检测 Delphi FMX Windows 窗体中的鼠标后退和前进按钮?

javascript - 选项卡内容无法正确呈现

javascript - 如果 div 为空,如何修复 onclick 不触发?

javascript - 倒计时器激活 Controller 方法

javascript - Angularjs - 如果元素不存在则隐藏元素

javascript - 克隆内联表单字段并附加到父容器

php - 使用自定义标签解析文本字段并转换为 HTML

鼠标释放时的 C++ 记录