2

我正在做一个“悬停偷看”脚本,希望大师能给我一些指导。请先阅读代码,然后阅读我的“代码说话”

$(".peek").mouseenter(function() {
    var $peek = $("#peek");
    if ($peek.data("active")) { return; }
    $peek.show().data("active", true);
    setTimeout(function() {
        $peek.hide().data("active", false);
    }, 1000);
}); 

我怎么能说:“如果 $peek 已被激活或 $peek 已被隐藏”这样做()

我的最终目标是:

如果将鼠标悬停在 .peek 上,则显示 #peek 1 秒钟,然后如果您已看到 #peek,请禁用悬停在 .peek 上的功能,这样您就无法再看到 #peek。

4

2 回答 2

1

hide你设置active为假。如果你不这样做,它只是return在显示之前,在任何后续悬停时,对吗?

于 2012-05-11T07:08:03.170 回答
1
$(".peek").mouseenter(function() {
    var $peek = $("#peek");
    if (typeof $peek.data("active") !== "undefined") return;

    $peek.show().data("active", true);
    setTimeout(function() {
        $peek.hide().data("active", false);
    }, 1000);
}); 

在您的代码中,if ($peek.data("active"))检索falseundefined,而您只想运行其余代码(如果它是 )undefined

于 2012-05-11T07:08:14.537 回答