jquery和多元素悬停检查

时间:2011-06-26 12:45:56

标签: javascript jquery

我有3个盒子,一旦用户悬停任何一个,如果通过featVals hash table

将大主要div的内容从默认更改为相关div

在我的代码的if ($('#estate-feature, #carrier-feature, #cleaning-feature').is(':hover')) {部分,我想检查这3个div框中是否有任何当前悬停,如果没有显示默认内容(defaultFeat变量)。

但是,我从Google Chrome Javascript控制台收到Uncaught Syntax error, unrecognized expression: hover错误。

我该如何解决?

此致

$('#estate-feature, #carrier-feature, #cleaning-feature').hover(function () {
    var currentFeatCont = featVals[$(this).attr('id')];
    headlineContent.html(currentFeatCont);
}, function () {
    headlineContent.delay(600)
        .queue(function (n) {
        if ($('#estate-feature, #carrier-feature, #cleaning-feature').not(':hover')) {
            $(this).html(defaultFeat);
        }
        n();
    })
});

1 个答案:

答案 0 :(得分:2)

:hover不是元素的属性。此外,您绑定到悬停在那里,因此您知道您已离开悬停并可以恢复默认内容。如果您希望悬停触发的内容在该点离开触发元素后保留一段时间,那么您需要假设您不会翻转另一个触发器或实现一个共享标志变量来指示是否应暂停默认文本恢复。 e.g。

var isHovered = false;
$('#estate-feature, #carrier-feature, #cleaning-feature').hover(
    function() {
                var currentFeatCont = featVals[$(this).attr('id')];
                headlineContent.html(currentFeatCont);
                isHovered = true;
    }, 
    function() {    
            isHovered = false;
            headlineContent.delay(600)
            .queue(function(n) {
                if (!isHovered) {
                    $(this).html(defaultFeat);
                }
                n(); 
            })
    }
);