javascript - 如何为鼠标悬停功能添加延迟?

标签 javascript jquery

我正在使用 jQuery 插件 FullCalendar 制作一个日历应用程序,并在日历左侧制作了一个选项卡,其中包含 1-6 周。当用户将鼠标拖动到其中一周时,日历会切换到相应 View 的 View 。这可行,但如果用户不小心这样做,可能会很烦人。因此,我想为该函数添加一个延迟,这样只有当用户将鼠标放在该函数上几百毫秒时才会发生这种情况,这样在用户不希望发生的情况下这种情况就会减少。

$('#week3').mouseover(function() {
    $('#week3').css('color', 'white');
    $('#week3').css('background-color', '#6B8BA9');
    $('#week3').week3();

我想在 $('#week3').css('color', 'white'); 之前添加短暂的延迟

最佳答案

如果我理解正确,那么您将需要一个更完整的解决方案,如下所示

var mouse_monitor

$('#week3').mouseover(function() {
  mouse_monitor = setTimeout(function(){
    $('#week3').css('color', 'white');
    $('#week3').css('background-color', '#6B8BA9');
    $('#week3').week3();
  }, 1500)
}); 

$('#week3').mouseout(function() { clearTimeout( mouse_monitor ); }

var mouse_monitor 是对超时函数的全局引用。其他帖子中缺少 mouseout 函数,这可以确保如果用户在 setTimeout 值到期之前将鼠标移离悬停目标,则 mouseover 函数不会触发。其他示例仍然会每次调用您的鼠标悬停函数,但只是增加了延迟,因此它们无法实现我认为您想要实现的目标。

关于javascript - 如何为鼠标悬停功能添加延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18337608/

相关文章:

jquery - "proper"将控制权传递给新页面的方法?

c# - Silverlight 托管在 Winforms 中

javascript - 向预填充的推文添加变量

javascript - 单击单独的 div 取消动画状态

javascript - 当鼠标悬停在子可滚动 HTML 元素上时,如何使用鼠标滚轮移动父滚动条?

jquery - CSS 动画一次一行

javascript - 如果我在我所在的函数上调用 onload 事件,它是否考虑递归?

javascript - React Hooks,重新渲染并保持相同的状态 - 它是如何工作的?

javascript - 如何使用 jest 的参数测试请求 http - Angular

javascript - 使用 AJAX 的 JQuery 自动完成