0

因此,我正在编写一个函数来解决浏览器错误,我不会详细介绍,因为正如您所知道的错误,即使是简洁地描述它们也会很痛苦。

无论如何,我拥有的是一个 jquery 函数,当鼠标进入特定区域时会触发点击,我遇到的问题是我希望它仅在鼠标在那里超过半秒时触发。

现在我尝试设置超时,但所做的只是延迟触发,一旦你将鼠标悬停,该功能就会继续它的快乐方式。那么,只有在 .left 悬停超过 500 毫秒时,我才会触发 .click 功能?

$(document).ready(function () {
    $('.left').mouseenter(function () {
        setTimeout(function () {
            $('.latest').click();
        }, 500);
    });

    $('.left-3').mouseenter(function () {
        setTimeout(function () {
            $('.popular').click();
        }, 500);
    });

    $('.left-5').mouseenter(function () {
        setTimeout(function () {
            $('.favsurl').click();
        }, 500);
    });
});  
4

1 回答 1

4

您调用setTimeout()mouseenter 和clearTimeout()mouseleave。这样,如果在时间结束之前将鼠标移出,则会取消超时并且不会调用您的函数。

    var timerID;

    $('.left').mouseenter(function() { 
        timerID = setTimeout(function () {
            $('.latest').click();
        }, 500); 
    }).mouseleave(function() {
        clearTimeout(timerID);
    });

演示:http: //jsfiddle.net/MWDcg/

于 2013-06-14T13:54:13.113 回答