Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.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 如果鼠标悬停(光标)的条件超过“a”中的三个scond,如何添加;标签;?_Javascript_Jquery_Html_If Statement_Jquery Hover - Fatal编程技术网

Javascript 如果鼠标悬停(光标)的条件超过“a”中的三个scond,如何添加;标签;?

Javascript 如果鼠标悬停(光标)的条件超过“a”中的三个scond,如何添加;标签;?,javascript,jquery,html,if-statement,jquery-hover,Javascript,Jquery,Html,If Statement,Jquery Hover,我的问题不是动画的持续时间。 我的问题是-如果鼠标停留在标签上超过3秒。悬停效果会出现,但绝对不要在3秒钟之前加载数据。因此,仅在3秒后加载数据。下面是我的html代码,我不能添加类名和id名,因为它们都是动态的 Html: 您想为mouseover事件创建一个函数,用于启动计时器。如果计时器达到3000ms或更高,则调用函数更新您正在更新的内容 还要创建一个mouseout事件来清除超时 var快照超时; //在此处理(加载)数据的代码。 功能快照(数据){ snapshotTimeout

我的问题不是动画的持续时间。 我的问题是-如果鼠标停留在标签上超过3秒。悬停效果会出现,但绝对不要在3秒钟之前加载数据。因此,仅在3秒后加载数据。下面是我的html代码,我不能添加类名和id名,因为它们都是动态的

Html:


您想为mouseover事件创建一个函数,用于启动计时器。如果计时器达到3000ms或更高,则调用函数更新您正在更新的内容

还要创建一个mouseout事件来清除超时


var快照超时;
//在此处理(加载)数据的代码。
功能快照(数据){
snapshotTimeout=window.setTimeout(函数(){
警报(“警报在3秒后发生”);
}, 3000);
}
函数clearSnapshotTimeout(){
clearTimeout(快照超时);
}
编辑:
如果无法将鼠标移出事件添加到html页面,则可以尝试以下操作:


var快照超时;
//在此处理(加载)数据的代码。
功能快照(数据){
snapshotTimeout=window.setTimeout(函数(){
警报(“警报在3秒后发生”);
}, 3000);
}
函数clearSnapshotTimeout(){
clearTimeout(快照超时);
}
//将mouseout事件处理程序添加到具有mouseover属性的每个元素。
var mouseOverElements=document.querySelectorAll('[onmouseover^=“snapshot(”);

对于(var i=0;i两件事,您必须为
a
标记提供一些独特的特性,例如class/id/data属性,以便能够在Javascript中精确定位它。否则,您的唯一方法就是让所有
a
标记对您想要创建的行为做出反应

我希望你有办法做到这一点

假设您已经给了
a
标签一个
id
,您应该能够做到这一点

const myLink = document.getElementById('myId');

let timeout;

myLink.on('mouseover', () => {
    timeout = window.setTimeout(() => doStuff);
});

myLink.on('mouseout'), () => {
    window.clearTimeout(timeout);
});

function doStuff () {
   // Your logic here
}

“无法添加类/id”-是否有其他方法来标识有问题的div?是否可以添加
数据-
属性?它是否有一个具有已知id/class的父级?父级父级(-parent..)等?因为所有这些都是动态的”-包括
onmouseover
style=inline etc
-动态不应该阻止您在某个地方添加类,除非有其他限制,“动态”到目前为止您尝试了什么?SetTimout/ClearTimeout似乎是显而易见的解决方案。@freedomn-m我将在函数中添加这个if contion代码(快照)快照函数也是全局的。请参考此答案……它几乎可以工作,但我需要if conditon,因为如果我实现了您的代码,那么我将添加onmouseout=“clearnapshotTimeout()”大约100页。完成3秒后加载数据,但从您的代码中不是这样。它是在鼠标悬停时加载数据,并在3秒后显示警报。这就是问题所在。这就是为什么我要查看条件…我已经编辑了我的答案,以适应向每个元素添加mouseout事件的情况。嗨,Adrian,带onmouseout onl的Html我正在工作,但是没有onmouseout的html无法工作。请检查。现在我在所有静态和动态页面上添加了onmouseover效果。现在它工作正常。感谢您为我节省时间@Adrian Roworth。
if (time >= 3000s)
{
add data
}
else
{
add another
}
const myLink = document.getElementById('myId');

let timeout;

myLink.on('mouseover', () => {
    timeout = window.setTimeout(() => doStuff);
});

myLink.on('mouseout'), () => {
    window.clearTimeout(timeout);
});

function doStuff () {
   // Your logic here
}