首页 > 解决方案 > 事件的初始延迟(鼠标按下)?

问题描述

<!DOCTYPE html>
<html onmouseup="end()">
 <head>
    <meta charset="UTF-8">
    <script type="text/javascript">
    var counter;
    var count = 0;

          
    function start(outp)
    {
        counter = setInterval(function()
        {
          console.log(count);
          add(outp);
          count++;
        },500);
    }
    function end()
    {
    clearInterval(counter);
    }
      
      
    function add(outp)
    {
    window.document.form1.Display.value =
    window.document.form1.Display.value + outp;
    }
       </script>

 </head>
 <body >
    <form name="form1">
        <button onmousedown="start('x')"onmouseleave="end()" >Click and hold</button>
        <input type="text"name="Display"class="display"readonly>
    </form>
 </body>
</html>

这就是片段,“500”是每次迭代之间的延迟,但我不知道如何指定初始延迟。

该按钮通常还有一个 Onclick 事件,我希望在 X 时间后触发 onmouse 事件。

标签: javascripteventsevent-handlingmouseeventdelay

解决方案


尝试设置初始超时并在那里执行您的逻辑,然后还使用相同的逻辑设置间隔。

setTimeout(() => {
  console.log(count);
  add(outp);
  count++;
  counter = setInterval(() =>
    {
      console.log(count);
      add(outp);
      count++;
     }, 500);
}, initialTimoutMs); 

  

推荐阅读