Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 原型JS:带定时器的鼠标覆盖?_Javascript_Mouseevent_Prototypejs_Mouseover_Dom Events - Fatal编程技术网

Javascript 原型JS:带定时器的鼠标覆盖?

Javascript 原型JS:带定时器的鼠标覆盖?,javascript,mouseevent,prototypejs,mouseover,dom-events,Javascript,Mouseevent,Prototypejs,Mouseover,Dom Events,我不熟悉Prototype JS(一般来说还有javascript),我试图在用户将鼠标悬停在页面上的某个元素上半秒钟后,显示一个覆盖。目前,我正在通过以下方式实现这一目标: $$("a.tag").invoke('observe', 'mouseover', function() { //my code here }); 此代码在鼠标悬停触发器元素时显示叠加,但如何添加半秒暂停?执行以下操作: var timerId; $$("a.tag").invoke('observe', 'mous

我不熟悉Prototype JS(一般来说还有javascript),我试图在用户将鼠标悬停在页面上的某个元素上半秒钟后,显示一个覆盖。目前,我正在通过以下方式实现这一目标:

$$("a.tag").invoke('observe', 'mouseover', function() {
//my code here
});
此代码在鼠标悬停触发器元素时显示叠加,但如何添加半秒暂停?

执行以下操作:

var timerId;

$$("a.tag").invoke('observe', 'mouseover', function() {
  timerId = setTimeout(function() {
     // code here
  }, 500);
});

$$("a.tag").invoke('observe', 'mouseout', function() {
  if (timerId) {
    cancelTimeout(timerId)
    timerId = null;
  }
});
这样做:

var timerId;

$$("a.tag").invoke('observe', 'mouseover', function() {
  timerId = setTimeout(function() {
     // code here
  }, 500);
});

$$("a.tag").invoke('observe', 'mouseout', function() {
  if (timerId) {
    cancelTimeout(timerId)
    timerId = null;
  }
});

我认为您可以向元素添加一个class
waitingddelay

然后对“show function”进行编码,以便仅在元素没有
waitingddelay
类时执行。在延迟结束时,删除
waitingddelay

我认为您可以向元素添加一个类
waitingddelay

然后对“show function”进行编码,以便仅在元素没有
waitingddelay
类时执行。在延迟结束时,请删除WaitingAddeLay

嗨,Martin,谢谢你的回答。我想做一些稍微不同的事情…我不想添加半秒的暂停,而是想在鼠标在元素上停留超过0.5秒时触发该功能。对于上面的代码,如果我将鼠标悬停在某个元素上0.1秒,仍然会出现覆盖,它只会被延迟。你知道如何检查鼠标在元素上停留的时间吗?对不起,我傻了,我现在明白了。我会想办法编辑我的帖子:)如果你嗨,马丁,谢谢你的回答。我想做一些稍微不同的事情…我不想添加半秒的暂停,而是想在鼠标在元素上停留超过0.5秒时触发该功能。对于上面的代码,如果我将鼠标悬停在某个元素上0.1秒,仍然会出现覆盖,它只会被延迟。你知道如何检查鼠标在元素上停留的时间吗?对不起,我傻了,我现在明白了。我会解决一些问题并编辑我的帖子:)如果延迟超时后没有调用show函数,那么这将不起作用。延迟超时后没有调用show函数,因此这将不起作用。