Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript悬停超过3秒_Javascript - Fatal编程技术网

Javascript悬停超过3秒

Javascript悬停超过3秒,javascript,Javascript,我正在尝试编写香草javascript,它将侦听img是否悬停,如果图像悬停3秒钟,它将打开一个新选项卡。目前我正在做类似的事情 img.addEventListener('mouseover', changeDefOver); img.setAttribute( 'class', 'myCssClass' ); 但这会立即完成,并且不会在3秒钟内检查。我也不能使用jQuery。有什么想法吗?因此,如果用户离开元素,请使用timeout并删除超时 function over() { th

我正在尝试编写香草javascript,它将侦听img是否悬停,如果图像悬停3秒钟,它将打开一个新选项卡。目前我正在做类似的事情

 img.addEventListener('mouseover', changeDefOver);
img.setAttribute( 'class', 'myCssClass' );

但这会立即完成,并且不会在3秒钟内检查。我也不能使用jQuery。有什么想法吗?

因此,如果用户离开元素,请使用timeout并删除超时

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);

因此,如果用户离开元素,请使用timeout并删除超时

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

但您还需要清除超时:

img.addEventListener('mouseout', clearHoverTimeout);

弹出窗口拦截器可能会阻止此操作,但您可以使用setTimeout

但您还需要清除超时:

img.addEventListener('mouseout', clearHoverTimeout);


尝试将时间+3秒存储在变量中,然后当时间到达变量中的时间时,然后你就知道鼠标向下移动的时间已经过去了3秒。弹出窗口拦截器可能会阻止它这样做吗?^^这不起作用,因为它需要知道你的鼠标是否在图像上悬停3秒。如果你将图像悬停<3秒,则不应打开新选项卡。将时间+3秒存储在一个变量中,当时间到达变量中的时间时,然后你就知道鼠标向下移动的时间已经过去了3秒。弹出窗口拦截器可能会阻止它,所以有可能吗?^^这不起作用,因为它需要知道你的鼠标是否在图像上悬停了3秒。如果你将图像悬停<3秒,新选项卡将不会打开。是否可以用其他内容替换任何出现的img如果img是一个广告,还有其他原因吗?有没有一个简单的方法可以做到这一点?不是特别简单。广告通常在iFrame内提供。但您可以使选择器更具体,只在您自己的图像上触发此代码。将一个类添加到您想要定位的对象,并仅将事件绑定到Thoselso,我要打开的链接,而不是Geeksforgeks,是一个需要其经度和纬度的链接。我一直在尝试navigator.geolocation.getCurrentPosition,但似乎出现了一些问题。有什么想法吗?我相信用户需要对此给予许可。比如,当你看到一个弹出窗口询问网站是否可以使用你的位置时,@epascarello的想法似乎不错,但有时会打开一堆标签。是否有办法只打开一个?如果img是AD,是否有可能用其他内容替换img的出现?有没有一个简单的方法可以做到这一点?不是特别简单。广告通常在iFrame内提供。但您可以使选择器更具体,只在您自己的图像上触发此代码。将一个类添加到您想要定位的对象,并仅将事件绑定到Thoselso,我要打开的链接,而不是Geeksforgeks,是一个需要其经度和纬度的链接。我一直在尝试navigator.geolocation.getCurrentPosition,但似乎出现了一些问题。有什么想法吗?我相信用户需要对此给予许可。比如,当你看到一个弹出窗口询问网站是否可以使用你的位置时,@epascarello的想法似乎不错,但有时会打开一堆标签。有办法只打开一个吗?这很好。唯一的问题是,它似乎打开了一堆标签,而不是一个。嗯,空白打开了一个新标签,这很好。唯一的问题是,它似乎打开了一堆选项卡,而不是一个。嗯,blank会打开一个新选项卡