原型JS:带定时器的鼠标悬停?

时间:2010-11-27 07:34:38

标签: javascript javascript-events mouseevent mouseover prototypejs

我是Prototype JS的新手(以及一般的javascript),我试图在用户将页面上的元素悬停半秒后显示叠加层。目前,我正在通过以下方式实现这一目标:

$$("a.tag").invoke('observe', 'mouseover', function() {
//my code here
});

此代码会在触发元素被鼠标悬停时显示叠加层,但如何添加半秒暂停?

感谢你们给我的任何帮助!

2 个答案:

答案 0 :(得分:2)

这样做:

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;
  }
});

答案 1 :(得分:2)

我认为你可以为你的元素添加一个类waitingEndDelay。 然后编写“show function”代码,以便仅在元素没有waitingEndDelay类时执行。在延迟结束时删除waitingEndDelay