javascript - 为什么 setTimeout 没有按预期工作?

标签 javascript html dhtmlx

我正在尝试移动 <div id="box">每次我的鼠标指针悬停在它上面,但它似乎只有在我有 mouseover 时才会移动div 上的事件,而不是当我的鼠标悬停在它上面时。

document.getElementsByTagName("body")[0].addEventListener("load",init());

function init(){
 console.log('in init');
 document.getElementById("box").addEventListener("mouseover",function(){
    var pixels=5;
    var perMs=40;
    var repeater=setTimeout(moveBox(pixels),perMs);

    document.getElementById("box").addEventListener("mouseout",function(){
        console.log('mouseOut');
        clearTimeout(repeater);
        });

    });

 }

 function moveBox(pixels){

    console.log('moveBox');
    var leftBox=document.getElementById("box").style.left;
    leftBox=parseInt(leftBox)+pixels;
    document.getElementById("box").style.left=leftBox;

  }

最佳答案

看起来好像您打算使用 setInterval 来重复调整元素:

var repeaterId = setInterval(moveBox, perMs, pixels);

阅读更多相关信息 here .

关于javascript - 为什么 setTimeout 没有按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32725169/

相关文章:

javascript - 无法理解过滤器 [VueJS] 中的参数

javascript - 为 Enterprise Architect 编写脚本时,使用 VBScript 还是 JavaScript 更方便?

javascript - 使用 jQuery 获取选择列表每次更改的值

html - 是否可以在浏览器中找到所有访问过的链接?

javascript - 如何比较 vue.js 中的属性值

javascript - ES2015 导入在 Firefox 中不起作用(即使在顶级)

javascript - dhtmlxgrid : getting an xml string of grid data

javascript - DHTMLX 网格列拖放到 DHTMLX 表单文本框中

javascript - JavaScript 中的最大整数值

javascript - 从 dhtmlxgrid 打开新窗口避免弹出窗口拦截器