0

我有一个定时器功能不起作用的问题,谁能指出为什么会这样?我确定这很简单,但不确定它是什么。

<a class="item"></a>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>

.item {width:50px; height:50px; background:red; margin:10px; float:left; opacity:1; }


$("document").ready(function() {
    var tooltipTimeout;

    $(".item").hover(function () {
    tooltipTimeout = setTimeout( $(".item").not(this).stop().fadeTo("slow", 0.5), 2000);
    },
    function () {
        $(".item").stop().fadeTo("slow", 1);
    });


});

谢谢。

http://jsfiddle.net/Jrand/wqJMt/1/

4

1 回答 1

2

您需要将要在匿名函数中执行的 JS 包装起来。此外,setTimeout()将更改(此处this的解释)的值,因此请确保在函数中分配一个新变量,并将其用作参数:thishover().not()

$(".item").hover(function () {
  var item = this;
  tooltipTimeout = setTimeout(function() { $(".item").not(item).stop().fadeTo("slow", 0.5) }, 2000);
},
function () {
    $(".item").stop().fadeTo("slow", 1);
});

演示

于 2013-03-11T21:23:09.907 回答