Самый простой способ многократного вызова пользовательской функции в Jquery при наведении курсора? - PullRequest
0 голосов
/ 04 июля 2010

У меня есть функция goRight (), которая делает некоторые вещи, когда я нажимаю на div с именем "goright".

Я хочу сделать так, чтобы при наведении курсора на div "goright" он вызывалфункция повторяется (с небольшой задержкой), пока я завис, а затем ничего не делаю и останавливаюсь, как только я убираю мышь.

Я экспериментировал с setInterval, но мне кажется, что я неправильно понимаю, какон работает, поэтому он не работает.

Спасибо.

1 Ответ

3 голосов
/ 04 июля 2010

Не использую jQuery, но у меня это работает, и подход должен быть похожим

<script type="text/javascript" charset="utf-8">
  var doingStuff = false;
  function doStuff() {
    if (doingStuff) {
      document.getElementById('stuff').innerHTML += '.';
      setTimeout(doStuff, 100);
    }
  }
</script>

<p onmouseover="doingStuff = true; doStuff()" onmouseout="doingStuff = false">
  Mouseover to do stuff
</p>

<p id="stuff">Stuff: </p>

Это добавит . к документу каждые 100 мс, пока вы зависаете.

В основном, установите логическое значение на true при наведении курсора, и false и наведите курсор мыши. И не планируйте следующий вызов, если переменная не истинна. Кроме того, вы не вызываете функцию каждые 100 мс, если вам не нужно. Это означает, что ничего не происходит до тех пор, пока вы не наведете курсор, установите var в true и отключите повторяющуюся функцию.

...