[英]JS hover link call function, but only once?
我有一个简单的HTML页面,其中包含许多链接。
当链接悬停时,它会调用函数dothis()
来更改页面上div的内容,但无论它悬停了多少次,我都只希望它为每个链接运行一次该函数。
例如,如果用户将鼠标悬停在特定链接上,将鼠标移开并再次悬停,它将不会再次加载该功能(每个链接都具有此1悬停限制,因此用户可以将鼠标悬停在链接A上,然后链接B仍然可以悬停时运行该函数(但每个链接仅运行一次)。
我已经加载了jquery,如果这使事情变得更容易。
有什么想法可以做到吗?
您可以在mouseenter
上使用unbind
$("#elementID").mouseenter(function(e){
$(this).unbind(mouseenter);
});
或one
$("#elementID").one("mouseenter",function(){
//do something
});
这是我的处理方式:
当用户将鼠标悬停在链接上时,函数将检查内部变量。 如果为null,则该函数将设置内部变量,以便它不会多次调用dothis()函数。
<!DOCTYPE html>
<html>
<head>
<title>Hover Once</title>
</head>
<body>
<a href="#" onmouseover="onHover(this)">Link 1</a>
<a href="#" onmouseover="onHover(this)">Link 2</a>
<a href="#" onmouseover="onHover(this)">Link 3</a>
<script>
function onHover(element) {
if(element.alreadyHovered == null) {
console.log("call dothis()");
element.alreadyHovered = true;
}
}
</script>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.