我有一些鼠标悬停事件的链接。而onmouseover将显示一个图层。 它工作得很好但有点烦人,因为如果鼠标无意地越过链接,那么图层就会显示出来。
现在我想要的是,如果用户将鼠标悬停在链接上并在链接上保留200毫秒,那么它应该显示该层。
我怎样才能以更好的方式做到这一点。因为我需要注册和setTimeout函数,如果鼠标在200 MS之前离开,我必须清除Timeout。
感谢您的帮助。
答案 0 :(得分:0)
<!doctype html>
<html>
<head>
<script>
window.onload = function () {
var interval = null, link = null;
// Window = Container
window.onmousemove = function (event) {
var target = event.target;
if (target.nodeName === "A") {
link = target;
if (interval === null) {
interval = setInterval (function () {
clearInterval (interval);
interval = null;
open ("", ""); // Display layer
}, 1000); // I think 1 sec is better
}
}
if (interval !== null && link !== target) {
clearInterval (interval);
interval = null;
}
}
}
</script>
<title></title>
</head>
<body>
<a href = "#">Click me</a>
<a href = "#">Click me</a>
</body>
</html>
答案 1 :(得分:0)
我已经在几家不同的公司编写了JS代码。如果您还希望将鼠标中的图层从您的触发功能中解除,那么它也会变得复杂,并且也会延迟解雇。
你是对的,你需要计时器ID存储的计时器,你可以清除它们。我不会为你编写代码,但是如果我有一个代码,我可以批评你的实现。