鼠标悬停超时太快

时间:2012-02-16 01:05:50

标签: javascript

我正在使用javascript将鼠标悬停设置在左侧导航栏中。但问题是,超时比应该更快。如何在鼠标悬停时延长时间?

stuHover = function () {
    var cssRule;
    var newSelector;
    for (var i = 0; i < document.styleSheets.length; i++) {
        for (var x = 0; x < document.styleSheets[i].rules.length; x++) {
            cssRule = document.styleSheets[i].rules[x];
            if (cssRule.selectorText.indexOf("LI:hover") != -1) {
                newSelector = cssRule.selectorText.replace(/LI:hover/gi, "LI.iehover");
            document.styleSheets[i].addRule(newSelector, cssRule.style.cssText);
            }
        }
    }
    var getElm = document.getElementById("nav").getElementsByTagName("LI");
    for (var i = 0; i < getElm.length; i++) {
        getElm[i].onmouseover = function () {
            this.className += " iehover";
        }
        getElm[i].onmouseout = function () {
            this.className = this.className.replace(new RegExp("iehover\\\b"), "")
            }
        }
    }
    if (window.attachEvent) window.attachEvent("onload", stuHover);

1 个答案:

答案 0 :(得分:0)

你想要这样的东西:

getElm[i].onmouseout = function() {
    var t = this;
    setTimeout(function() {
        t.className = t.className.replace(" iehover","");
    },5000); // 5 seconds
};

虽然真的,如果我不小心在触发区域上移动,我必须等待5秒才会消失,我会生气。请尝试250代替(0.25秒)。