Прототип JS: наведение мыши с таймером? - PullRequest
1 голос
/ 27 ноября 2010

Я новичок в Prototype JS (и в целом в javascript), и я пытаюсь сделать так, чтобы наложение появлялось после того, как пользователь в течение полсекунды наводил курсор на элемент страницы. В настоящее время я выполняю это с помощью:

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

Этот код заставляет наложение появляться при наведении мыши на элемент триггера, но как добавить полусекундную паузу?

Спасибо за любую помощь, которую вы можете мне дать!

Ответы [ 2 ]

2 голосов
/ 02 сентября 2011

Думаю, вы могли бы добавить класс waitingEndDelay к вашему элементу. Затем закодируйте свою «функцию показа», чтобы она выполнялась только в том случае, если у элемента нет класса waitingEndDelay. В конце задержки удалите waitingEndDelay.

2 голосов
/ 27 ноября 2010

Сделайте это:

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