jQuery - .is(':hover')总是返回false

时间:2014-02-20 15:48:35

标签: jquery

我有jQuery轮播,我正在尝试添加间隔滚动而不更改代码的核心。我这样做是通过模拟一个间隔的点击来运行的。

但如果用户悬停在轮播容器上,我不希望发生点击。

    var tid = setInterval(carouselClick, 5000);
    var isHovered = jQuery('.jcarousel-clip').is(':hover');
    function carouselClick() {

        if (!isHovered){
            jQuery('#test').html('<h1>'+isHovered+'</h1>');
            jQuery('.jcarousel-next').trigger('click');
        }
    }

我输入#test位来检查函数运行时的悬停状态,它总是返回false。

1 个答案:

答案 0 :(得分:1)

您需要将isHovered放在点击功能

var tid = setInterval(carouselClick, 5000);

function carouselClick() {
    var isHovered = jQuery('.jcarousel-clip').is(':hover');
    if (!isHovered){
        jQuery('#test').html('<h1>'+isHovered+'</h1>');
        jQuery('.jcarousel-next').trigger('click');
    }
}

如果你把它留在外面,那么isHovered的值将始终相同,这是第一次运行时的值