具有超时的鼠标悬停事件

时间:2011-02-10 10:24:27

标签: javascript prototype

我有一些鼠标悬停事件的链接。而onmouseover将显示一个图层。 它工作得很好但有点烦人,因为如果鼠标无意地越过链接,那么图层就会显示出来。

现在我想要的是,如果用户将鼠标悬停在链接上并在链接上保留200毫秒,那么它应该显示该层。

我怎样才能以更好的方式做到这一点。因为我需要注册和setTimeout函数,如果鼠标在200 MS之前离开,我必须清除Timeout。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

enter image description here

<!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存储的计时器,你可以清除它们。我不会为你编写代码,但是如果我有一个代码,我可以批评你的实现。