У меня есть fancybox для отображения фотографий и их описания. Теперь он открывает fancybox на событии mouseenter. Он отлично работает с этим кодом:JQuery Fancybox open delay
$('.fancy_link').live('mouseenter', mouseEnter);
function mouseEnter()
{
jQuery(this).fancybox().trigger('click');
return false;
}
Но мне нужно установить задержку для открытия fancybox. Как это должно работать: Пользователь перемещает курсор по ссылке, после 1 секунды fancybox должен открывать и отображать содержимое. Если пользователь перемещает мышь, прежде чем ждать 1 секунду, fancybox не должен открываться.
Я пробовал JQuery delay() и setTimeout(), но оба они работают неправильно. 1 сек. задержка просто игнорируется обоими методами.
Вы можете проверить это http://stackoverflow.com/a/11731165/1055987 – JFK
Похоже, вы пытаетесь задержать парения триггер, который является довольно сложно, поскольку он перегорает при малейшем движении мыши. Ссылка в комментарии полезна, но также, посмотрите на плагин «hoverintent» (Google it) очень полезно, и я думаю, что полностью обработать то, что вам нужно. –
@JamieHartnoll: ссылка в моем комментарии также включает ссылку на плагин 'hoverIntent' и образец кода того, как его использовать. @crd: возможная проблема с принятым ответом называется «пузыриться», если вы понимаете, что я имею в виду (именно здесь «hoverIntent» становится удобной). Также 'live()' устарел и причина, по которой он не может работать с 'on()', состоит в том, что оба метода не обязательно имеют одну и ту же структуру ('on()' должен иметь делегированную форму в этом случае); @ tracker1 должен предоставить вам правильный '.on()' делегированный формат, так как его ответ был принят. – JFK