jQuery中hover事件的延迟

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery中hover事件的延迟相关的知识,希望对你有一定的参考价值。

jQuery(document).ready(function($)
$('ul#navi li').prepend('<div class="hover"></div>');
$('ul#navi li').hover(
function()
$('div.hover', this).fadeIn(500);
,
function()
$('div.hover', this).fadeOut(100);

);
$('ul#navi li').hover(
function()
$('a', this).fadeTo(200,0.1);
,
function()
$('a', this).fadeTo(10,1);

);
);

如何设置延迟200ms?

用delay()设置延迟。如:$('div.hover', this).delay(200).fadeIn(500);追问

我希望hover事件当在鼠标停留200ms以上时才触发,请问怎么才可以做到呢?

追答

这样就是鼠标停留200ms以上才触发,设置里面的参数控制延迟时间

追问

您的方法,只要是鼠标滑过,200ms后都会触发hover事件

参考技术A 在你的hover方法里
第一个参数里添加
timer = window.setTimeout("javascript:void()",200);
第二个参数里添加
if(timer)
window.clearTimeout(timer);
追问

not working

追答

没出错吧?
200ms是不是太短了,你设置大点,要不然看不出效果

追问

可能是我添加错了,您看看对嘛?
$('ul#navi li').hover(
function() timer = window.setTimeout("javascript:void()",2000);
$('div.hover', this).fadeIn(500);,
function() if(timer)window.clearTimeout(timer);
$('div.hover', this).fadeOut(500););

追答

我看上面那位帅哥的delay()达不到你的效果吗?

追问

我需要的是停留时间少于200ms就不执行

追答

我晕死,你问题都没说清楚,你看看你的问题!!!

追问

嗯……对不起,我表达的不够清楚

本回答被提问者采纳
参考技术B $('ul#navi li').hover(
function()
window.setTimeout("eval(1);",200);
$('a', this).fadeTo(200,0.1);
,
function()
$('a', this).fadeTo(10,1);

);追问

not working

以上是关于jQuery中hover事件的延迟的主要内容,如果未能解决你的问题,请参考以下文章

jQuery中hover事件和click事件嵌套问题

jquery中取消和绑定hover事件的正确方式

JQuery中DOM事件合成用法

jquery鼠标悬停事件hover()

jquery on hover事件怎么写

第79天:jQuery事件总结