悬停JavaScript超过3秒

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了悬停JavaScript超过3秒相关的知识,希望对你有一定的参考价值。

我正在尝试编写普通的javascript,如果img悬停在javascript上,它将监听,如果图像悬停3秒钟,则会打开一个新标签页。目前我正在做这样的事情

 img.addEventListener('mouseover', changeDefOver);
img.setAttribute( 'class', 'myCssClass' );
function changeDefOver(e) {
  window.open("https://www.geeksforgeeks.org", "_blank");
}

但是这将立即执行,并且不会检查3秒钟。我也不能使用jQuery。有什么想法吗?

答案

因此,请使用超时,如果用户离开该元素,则删除该超时。

function over() {
  this.timeout = window.setTimeout(function () {
    console.log('here')
  }, 3000)
}

function left() {
  if (this.timeout) window.clearTimeout(this.timeout)
}

img.addEventListener('mouseenter', over);
img.addEventListener('mouseleave', left);
另一答案

弹出窗口阻止程序可能会阻止此操作,但是您可以使用setTimeout.

let hoverTimeout;

function changeDefOver(e) {
  hoverTimeout = setTimeout(() => {
     window.open("https://www.geeksforgeeks.org", "_blank");
  }, 3000);
}

function clearHoverTimeout() {
   clearTimeout(hoverTimeout);
}

但是您还需要清理超时:

img.addEventListener('mouseout', clearHoverTimeout);

以上是关于悬停JavaScript超过3秒的主要内容,如果未能解决你的问题,请参考以下文章

收藏|分享前端开发常用代码片段

sublime text 3 添加 javascript 代码片段 ( snippet )

JavaScript笔试题(js高级代码片段)

jquery的hover 实现鼠标悬停2秒以上才执行 怎么写?

停止 ImageButton 工具提示出现在通过片段悬停时

JavaScript单行代码,也就是代码片段