Инициируйте задержанное событие наведения с помощью Jquery. - PullRequest
5 голосов
/ 19 ноября 2011

Я пытаюсь вызвать задержанное событие при наведении:

$(".graphic").delay(500).trigger('mouseover').trigger('mouseout');

Но задержка игнорируется.

Есть идеи?

Ответы [ 3 ]

8 голосов
/ 19 ноября 2011

delay () влияет только на очередь анимации, но trigger () работает синхронно. Вы можете использовать queue () , чтобы запланировать функцию, запускающую события после задержки:

$(".graphic").delay(500).queue(function(next) {
    $(this).trigger("mouseover").trigger("mouseout");
    next();
});
2 голосов
/ 19 ноября 2011

API jQuery сообщает:

Задерживаются только последующие события в очереди;например, это не будет задерживать формы без аргументов .show () или .hide (), которые не используют очередь эффектов.

Возможно, вы можете установить таймер, который будет запускать mouseover /через 500 мс с использованием Windows.setTimeout

2 голосов
/ 19 ноября 2011

Метод .delay() лучше всего подходит для задержки между поставленными в очередь эффектами jQuery .

Чтобы отложить начальный эффект, используйте функцию setTimeout().Кстати, вы могли бы использовать mouseover() вместо trigger('mouseover')

setTimeout(function () {
  $(".graphic").mouseover().mouseout();
}, 500); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...